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

DWR2调整struts2和spring3

2012-11-14 
DWR2整合struts2和spring3web.xml中的配置:!-- 配置dwr --servletservlet-namedwr-invoker/servlet

DWR2整合struts2和spring3
web.xml中的配置:

<!-- 配置dwr -->      <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>    <!--用于拦截 http://localhost:8080/dwr--><servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>

DWR整合Spring配置
<!-- DWR整合Spring配置 creator属性的值可以是new,struts,spring、jsf、scripted、pageflow、none 因为此处是整合spring来做的,所以设置成"spring", javascript="usercard" 表示实例转换成javascript语言后以usercard命名, param元素的name属性值可以是class,beanName等, 此处用beanName,value得值是定义在applicationContext.xml中某个bean的id值。   --> <dwr> <allow> <create javascript="usercard" creator="spring"> <param name="beanName" value="usercard"></param> </create> <convert match="com.aptech.enterprise.entity.Usercard" converter="bean"> </convert> </allow> </dwr> <!--cteator 为spring 指的是使用spring 配置的bean ,javascript 为jsp页面中使用的dwr js文件名称,param name 为beanName表示使用spring中bean id 名称,value 为spring中定义的service的名称  -->


此处如果直接使用creator="new",<param name="class" value="完整的类名"/>的方式调用后台的java方法,会报出以下错误:
WARN : org.directwebremoting.dwrp.BaseCallMarshaller#warn : --Erroring: batchId[5] message[java.lang.NullPointerException]


另外在页面点击测试dwr的时候,需将web.xml中的struts的拦截属性设置为:
  <filter-mapping>      <filter-name>struts2</filter-name>      <url-pattern>*.action</url-pattern>  </filter-mapping>

而不能使用<url-pattern>/*</url-pattern>(会拦截所有的请求),因为测试dwr的时候,地址栏是.../dwr/test/xxx,会提示在相应的namespace中没有对应于xxx的action。所以将struts改为只拦截以.action结尾的请求。

配置完后可以通过http://localhost:8080/项目名称/dwr/index.html 查看dwr.xml中配置是否成功

热点排行