web.xml中的配置:
DWR整合Spring配置
此处如果直接使用creator="new",<param name="class" value="完整的类名"/>的方式调用后台的java方法,会报出以下错误:
另外在页面点击测试dwr的时候,需将web.xml中的struts的拦截属性设置为:
而不能使用<url-pattern>/*</url-pattern>(会拦截所有的请求),因为测试dwr的时候,地址栏是.../dwr/test/xxx,会提示在相应的namespace中没有对应于xxx的action。所以将struts改为只拦截以.action结尾的请求。
配置完后可以通过http://localhost:8080/项目名称/dwr/index.html 查看dwr.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中配置是否成功