首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

DWR配备

2012-09-20 
DWR配置今日用到了DWR让我折腾了一会,最终搞定,先记住,方便下次不用麻烦!1,添加Dwr.jar2,配置web.xml(请自

DWR配置

今日用到了DWR让我折腾了一会,最终搞定,先记住,方便下次不用麻烦!

1,添加Dwr.jar

2,配置web.xml(请自行添加ContextLoaderListener监听器,否则bean无法获取!),

?????

<servlet>   <servlet-name>dwr-invoker</servlet-name>   <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>   <init-param>    <param-name>debug</param-name>    <param-value>true</param-value>   </init-param>   <init-param>                    <param-name>crossDomainSessionSecurity</param-name>                    <param-value>false</param-value>            </init-param>   </servlet>  <servlet-mapping>   <servlet-name>dwr-invoker</servlet-name>   <url-pattern>/dwr/*</url-pattern>  </servlet-mapping>

?

3,配置dwr.xml(将此文件添加到WEB-INFO目录下,此配置方法很多,详参考相关文档)

????

<?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>  <allow>    <create creator="spring" javascript="aclManager" scope="application">      <param name="beanName" value="aclManager"/>    </create>        <convert converter="bean" match="com.panlong.service.impl.AclManagerImpl" />  </allow></dwr>

?

4,要使用时请先在调用页面引入文件如下:

????

<script type="text/javascript" src="<%=request.getContextPath() %>/dwr/engine.js"></script><script type="text/javascript" src="<%=request.getContextPath() %>/dwr/util.js"></script><script type="text/javascript" src="<%=request.getContextPath() %>/dwr/interface/aclManager.js"></script>

5,使用例子。

????

<script type="text/javascript">//授权function addOrUpdatePermission(field){dwr.engine.setAsync(false);//如果被选择上,则同时选择其"不继承"和"启用"checkboxif(field.checked){$(field.moduleId+"_USE").checked = true;<c:if test="${aclInfo.principalType eq 'User' }">$(field.moduleId+"_EXT").checked = true;addOrUpdateExtends(field);</c:if>}aclManager.addOrUpdatePermission("${aclInfo.principalType}",${aclInfo.principalId},field.moduleId,field.permission,field.checked);}//设置用户的继承特性function addOrUpdateExtends(field){aclManager.addOrUpdateUserExtends(${aclInfo.principalId},field.moduleId,!field.checked);}//点击启用checkboxfunction usePermission(field){//如果checkbox被选中,意味着需要更新ACL的状态//更新C/R/U/D以及Extends状态//设置为同步方式,以便DWR依次发出下列请求dwr.engine.setAsync(false);if(field.checked){addOrUpdatePermission($(field.moduleId+"_C"));addOrUpdatePermission($(field.moduleId+"_R"));addOrUpdatePermission($(field.moduleId+"_U"));addOrUpdatePermission($(field.moduleId+"_D"));<c:if test="${aclInfo.principalType eq 'User' }">addOrUpdateExtends($(field.moduleId+"_EXT"));</c:if>}else{aclManager.delPermission("${aclInfo.principalType}",${aclInfo.principalId},field.moduleId);$(field.moduleId+"_C").checked = false;$(field.moduleId+"_R").checked = false;$(field.moduleId+"_U").checked = false;$(field.moduleId+"_D").checked = false;<c:if test="${aclInfo.principalType eq 'User' }">$(field.moduleId+"_EXT").checked = false;</c:if>}}function initTable(){aclManager.searchAclRecord("${aclInfo.principalType}",${aclInfo.principalId},function(datas){for(var i=0; i < datas.length; i++){var moduleId = datas[i][0];var cState = datas[i][1];var rState = datas[i][2];var uState = datas[i][3];var dState = datas[i][4];var extState = datas[i][5];$(moduleId+"_C").checked = cState == 0 ? false : true;$(moduleId+"_R").checked = rState == 0 ? false : true;$(moduleId+"_U").checked = uState == 0 ? false : true;$(moduleId+"_D").checked = dState == 0 ? false : true;<c:if test="${aclInfo.principalType eq 'User' }">$(moduleId+"_EXT").checked = extState == 0 ? true : false;</c:if>$(moduleId+"_USE").checked = true;}});}</script>

?

结束!

1 楼 w7006007 2012-08-27   感觉DWR没用。用了还不如不用。 2 楼 it_dengdong 2012-08-27   我现在都用jquery的ajax操作JSON了。

热点排行