Ext的DWRProxy应用事例
1.导入dwr的相关包,在web.xml文件中进行dwr配置
<servlet><servlet-name>dwr-invoker</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class><init-param> <param-name>config-dwr</param-name> <param-value>/WEB-INF/dwr/dwr.xml</param-value></init-param><init-param> <param-name>debug</param-name> <param-value>false</param-value></init-param><load-on-startup>7</load-on-startup></servlet><servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>
2.配置dwr.xml文件,以下配置仅供参考
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"><dwr><init></init><allow><convert converter="bean" match="com.rms.dao.*"/><convert converter="bean" match="com.rms.util.SelectItem"/><convert converter="bean" match="com.rms.model.*"/><convert converter="bean" match="com.rms.service.*"/><convert converter="bean" match="com.rms.webapp.*"/><convert converter="exception" match="java.lang.Exception"/><convert converter="bean" match="java.lang.StackTraceElement" /><!-- 专卖局查询 --><create javascript="rmRegieOrgService" creator="spring"><param name="beanName" value="rmRegieOrgService"/></create></allow><signatures><!]></signatures></dwr>
3.web前端JS导入及调用
<script type='text/javascript' src="${ctx}/dwr/engine.js"></script> <script type='text/javascript' src="${ctx}/dwr/util.js"></script> <script type="text/javascript" src="${ctx}/include/widgets/ext/DWRProxy.js"> </script> <script type="text/javascript" src="${ctx}/dwr/interface/rmRegieOrgService.js"> </script> //JS调用 var store = new Ext.data.Store({proxy: new Ext.data.DWRProxy(rmRegiePersonService.getRmRegiePersonByDeptCode),reader: new Ext.data.ListRangeReader({ totalProperty: 'totalCount', root: 'items', id:'personCode'}, new Ext.data.Record.create([ {name: 'personCode', mapping: 'personCode'},{name: 'personName',mapping: 'personName'}]) )})
4.后台java代码,参数形式为Map<String,String),如果不是,需在dwr.xml文件中进行声明配置。
public ListRange getRmRegiePersonByDeptCode(Map<String,String> map){List list =rmRegiePersonDao.getRmRegiePersonByDeptCode(map);Map map1 = new HashMap();map1.put("personCode", "");map1.put("personName", "所有人员");list.add(map1);return new ListRange(list,list.size());}
public class ListRange implements Serializable {// 记录列表private List items;// 记录总数private long totalCount;// 每页记录数private long pageSize;// 第几页(1~N)private long pageNo;public ListRange() {}public ListRange(List items, long totalCount) {this.items = items;this.totalCount = totalCount;}// get,set省略}
页:
[1]