1.Spring+DWR 全注解版 搭建 Spring3.1.1 DWR3
1)普通调用
2)异步文件上传
3)反向 Ajax的全推及半推
2.部分配置
1)web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.spring.DwrSpringServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>crossDomainSessionSecurity</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>allowScriptTagRemoting</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>activeReverseAjaxEnabled</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> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
2)applicationContext-dwr.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" xmlns:dwra="http://www.directwebremoting.org/schema/spring-dwr-annotations" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd http://www.directwebremoting.org/schema/spring-dwr-annotations http://www.directwebremoting.org/schema/spring-dwr-annotations.xsd"> <!-- --> <context:annotation-config/> <context:component-scan base-package="com.j4t.demo" /> <dwr:configuration> <!-- <dwr:convert type="bean" class="com.demo.dwr3.spring3.bean.User" /> <dwr:convert type="bean" class="java.lang.StackTraceElement" /> <dwr:convert type="exception" class="java.lang.NullPointerException" /> <dwr:signatures> <![CDATA[ import java.util.Map; import java.util.List; ]]> </dwr:signatures> --> </dwr:configuration> <dwr:annotation-scan base-package="com.j4t.demo" scanDataTransferObject="true" scanRemoteProxy="true" /> <dwr:annotation-scan base-package="com.j4t.chat" scanDataTransferObject="true" scanRemoteProxy="true" /> <dwr:annotation-scan base-package="com.j4t.file" scanDataTransferObject="true" scanRemoteProxy="true" /> </beans>
package com.j4t.demo.model; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import org.directwebremoting.annotations.DataTransferObject; import org.directwebremoting.annotations.RemoteProperty; @DataTransferObject public class User { @RemoteProperty private String username; @RemoteProperty private String userpswd; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUserpswd() { return userpswd; } public void setUserpswd(String userpswd) { this.userpswd = userpswd; } @Override public String toString() { /** 需要commons-langs-2.x.jar **/ return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); } }
package com.j4t.demo.service; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.directwebremoting.annotations.RemoteMethod; import org.directwebremoting.annotations.RemoteProxy; import org.directwebremoting.spring.SpringCreator; import org.springframework.beans.factory.annotation.Autowired; import com.j4t.demo.dao.UserDao; import com.j4t.demo.model.User; @RemoteProxy(creator = SpringCreator.class, name = "userService") public class UserService { @Autowired UserDao userDao; @RemoteMethod public void saveUser(User user)throws Exception { userDao.save(user); } @RemoteMethod public void saveUsers(List<User> ulist) { for(User user:ulist){ userDao.save(user); } } @RemoteMethod public String sayHello(String msg,HttpServletRequest request)throws Exception { return msg+" "+request.getSession().getId(); } }