dwr-spring-hibernateの使用


最近権限のあるページを書いて、dwrで処理して、便利だと思います.
dwrの構成は次のとおりです.
web.xmlページ:

<!-- dwr   -->
	<listener>
		<listener-class>
			org.directwebremoting.servlet.DwrListener
		</listener-class>
	</listener>

	<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>
	</servlet>

	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>
dwr.xmlページ

<create creator="spring" javascript="permissionService">
  		<param name="beanName" value="permissionService"></param>
</create>
スプリングプロファイル

<bean id="permissionService" 
		name="permissionService"
		class="com.base.service.impl.PermissionServiceImpl" >
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>
	</bean>
jspページ:

	<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/permissionService.js'></script>
	<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script>
	<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script>
	<script type="text/javascript">
		function addOrModifyPermission(field) {
			//if checked addormodiy item ,or delete
			var res = field.attributes['resource'].nodeValue;
			if(field.checked) {
				//alert(field.resource);
				$(res+"_per").checked = true;
				permissionService.addMenuctrl(
					res,
					${rule.ruleno}
				);
			} else {
				$(res+"_per").checked = false;
				permissionService.removeMenuctrl(
					res,
					${rule.ruleno}
					);
			}
		}
		
		//     
		function initTable() {
			permissionService.findMenuctrlByRules(
				${rule.ruleno},
				function(data){
					for(var i=0;i<data.length;i++){
						var resource = data[i][0];
						$(resource+"_per").checked = true;
					}
				}
			);
		}
	</script>
	<title>	
			   ${rule.rulename}  
	</title>
	</head>
	<body bgcolor="#ccddee" link="#000066" vlink="#0066FF" alink="#99FF00"  onload="initTable()">
		<center>
			<table cellspacing="0" border="0" cellpadding="0" style="width:680px;">
				<tr>
			        <td align="center">  </td>
			        <td align="center">    </td>
			        <td align="center">  </td>
			        <td align="center">    </td>
			        <td align="center">  </td>
			        <td align="center">    </td>
			        <td align="center">  </td>
			        <td align="center">    </td>
      			</tr>
      			<tr>
      			<s:iterator value="menulist"  status="rowstatus" var="menu">
      				<td  align="center">
      					<input type="checkbox" id="<s:property value="menuid"/>_per" onclick="addOrModifyPermission(this)" resource="<s:property value="menuid"/>" >
      				</td>
      				<td  align="center"><s:property value="menuname"/></td>
      				<s:if test="#rowstatus.count%4 == 0"></tr><tr></s:if>
      			</s:iterator>
      		</table>
		</center>

	</body>
</html>
全体の操作の過程の中で比較的に面白いのはjspページの中でjsの編纂で、その中に多くのjsのプログラミング思想が含まれて、javaと比較して別の中で感じて、時間をかけて研究する価値があります.