1.在springmvc框架中,我们熟悉用jquery的异步提交,然后在controller中使用@ResponseBody 去接收。
但在struts2 + spring + hibernate中对于异步提交,我们感到很困惑,这个时候我们引入了dwr,dwr具体的用途我们这里就不讲,我们只要知道它的用法就可以。
2.我们先来看它的配置。
在项目的web.xml文件中
<servlet> <!-- 指定DWR核心Servlet的名字 --> <servlet-name>dwr-invoker</servlet-name> <!-- 指定DWR核心Servlet的实现类 --> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <!-- 指定配置文件 --> <init-param> <param-name>config</param-name> <!-- 如果有多个用","分开 --> <param-value> /WEB-INF/classes/dwr.xml </param-value> </init-param> <!-- 指定DWR核心Servlet处于调试状态 --> <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>
一会我们写的dwr 要交给spring容器管理,识别这些dwr我们使用的是注解,因而需要在配置文件中配置
<context:component-scan base-package="com.ece.ec.dwr" />
看一个dwr 的写法(看这个dwr他上面有一个@service这样一个标志,这个标志就说明该dwr交给spring容器管理了他直接引用service层,service层在调用dao层)
@Service
public class AdminInfoDwr { public String checkAdminInfo(Map mp) throws Exception { AdminInfoEntity adminInfo = adminInfoService.searchByCondition(mp); if(adminInfo!=null && adminInfo.getId()>0) return "yes"; return "no"; }
3.页面中怎么知道这个dwr,dwr还要有自己的配置文件,我们直接看例子
我们取名为dwr.xml(该文件在web.xml文件中有配置,随之服务器加载的时候加载执行)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.org/dwr/dwr10.dtd"> <dwr> <allow> <!-- 建立JS对象,将目标对象的方法转换成JS对象的方法 --> <!-- 从Spring中获取Java对象 --> <!-- 管理员dwr --> <create javascript="adminInfoDwr" creator="spring"> <param name="beanName" value="adminInfoDwr"></param> </create> <!-- 指定针对于特定对象的转换器 --> <convert match="com.test.entity.customer.*" converter="bean"></convert> <convert match="java.lang.Throwable" converter="bean"> <param name="include" value="message"></param> </convert> <convert match="com.test.entity.admin.*" converter="bean"></convert> </allow> </dwr>
我们来看蓝色这部分代码。。这部分代码很中要,因为你在dwr返回的list对象 获取该对象的值很中List<Person>
一开始我们配置蓝色部分代码,导致返回的list对象老是为null ,,通过网上查找很久查找到,需要添加蓝色部分代码,这样返回的list对象才不会为null . (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|