SpringMVC整合DWR

jopen 12年前發布 | 56K 次閱讀 SpringMVC Spring MVC Web框架

版本信息:

Spring3.1.2

Dwr3.0.M1

web.xml配置信息

<!-- spring mvc -->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
</servlet-mapping></pre><br />

spring-mvc-servlet.xml中配置信息

<dwr:configuration>
        <dwr:convert type="bean" class="org.mvn.dwr.model.User"></dwr:convert>
    </dwr:configuration>
    <dwr:url-mapping/>
    <dwr:controller id="dwrController" debug="true"/>

<bean class="org.mvn.dwr.dao.impl.UserDaoImpl" id="userDaoImpl">
</bean>

<bean class="org.mvn.dwr.service.impl.UserServiceImpl" id="userServiceImpl">
    <property name="userDao" ref="userDaoImpl"></property>
    <dwr:remote javascript="dwrUserService">
        <dwr:include method="checkUsernameIsExists"/>
        <dwr:include method="getUsername"/>
        <dwr:include method="findUserById"/>
        <dwr:include method="listAll"/>
    </dwr:remote>
</bean></pre><br />

User.java

package org.mvn.dwr.model;

public class User { private long id; private String username; private String birthday; private String address;

public User() {
}

public User(long id, String username, String birthday, String address) {
    super();
    this.id = id;
    this.username = username;
    this.birthday = birthday;
    this.address = address;
}

public long getId() {
    return id;
}

public void setId(long id) {
    this.id = id;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getBirthday() {
    return birthday;
}
public void setBirthday(String birthday) {
    this.birthday = birthday;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}



}</pre>
UserDao.java

package org.mvn.dwr.dao;

import java.util.List;

import org.mvn.dwr.model.User;

public interface UserDao {

boolean checkUsernameIsExists(String username);

String getUsername(long id);

User findUserById(long id);

List<User> listAll();

}</pre>
UserDaoImpl.java

package org.mvn.dwr.dao.impl;

import java.util.ArrayList; import java.util.List;

import org.mvn.dwr.dao.UserDao; import org.mvn.dwr.model.User;

public class UserDaoImpl implements UserDao{

@Override
public boolean checkUsernameIsExists(String username) {
    return true;
}

@Override
public String getUsername(long id) {
    return "dwrservice";
}

@Override
public User findUserById(long id) {
    return new User(1,"admin","1987-02-03","陜西西安");
}

public List<User> listAll(){
    List<User> lists=new ArrayList<User>();
    for (int i = 1; i <= 100; i++) {
        lists.add(new User(i,"admin"+i,"1987-02-03","陜西西安"+i));
    }
    return lists;
}

}</pre>
UserService.java

package org.mvn.dwr.service;

import java.util.List;

import org.mvn.dwr.model.User;

public interface UserService {

boolean checkUsernameIsExists(String username);

String getUsername(long id);

User findUserById(long id);

List<User> listAll();

}</pre>
UserServiceImpl.java

package org.mvn.dwr.service.impl;

import java.util.List;

import org.mvn.dwr.dao.UserDao; import org.mvn.dwr.model.User; import org.mvn.dwr.service.UserService;

public class UserServiceImpl implements UserService {

private UserDao userDao;

public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
}

@Override
public boolean checkUsernameIsExists(String username) {
    return userDao.checkUsernameIsExists(username);
}

@Override
public String getUsername(long id) {
    return userDao.getUsername(id);
}

@Override
public User findUserById(long id) {
    return userDao.findUserById(id);
}

@Override
public List<User> listAll() {
    return userDao.listAll();
}

}</pre>
在spring-mvc-servlet.xml中增加

xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"

http://www.directwebremoting.org/schema/spring-dwr

http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd

<dwr:configuration>
        <dwr:convert type="bean" class="org.mvn.dwr.model.User"></dwr:convert>
</dwr:configuration>
    <dwr:url-mapping/>
<dwr:controller id="dwrController" debug="true"/>

<bean class="org.mvn.dwr.dao.impl.UserDaoImpl" id="userDaoImpl"> </bean>

<bean class="org.mvn.dwr.service.impl.UserServiceImpl" id="userServiceImpl"> <property name="userDao" ref="userDaoImpl"></property> <dwr:remote javascript="dwrUserService"> <dwr:include method="checkUsernameIsExists"/> <dwr:include method="getUsername"/> <dwr:include method="findUserById"/> <dwr:include method="listAll"/> </dwr:remote> </bean></pre>
<dwr:configuration>
<dwr:convert type="bean" class="org.mvn.dwr.model.User"></dwr:convert>
</dwr:configuration>

表示把User進行轉換

<dwr:url-mapping/>
<dwr:controller id="dwrController" debug="true"/>

兩個不能少

<dwr:remote javascript="dwrUserService">
<dwr:include method="checkUsernameIsExists"/>
<dwr:include method="getUsername"/>
<dwr:include method="findUserById"/>
<dwr:include method="listAll"/>
</dwr:remote>

dwrUserService為指定dwr生成js文件的名稱

dwr:include表示那些方法需要開啟遠程調用

最后別忘了配置

<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="alwaysUseFullPath" value="true"></property>
        <property name="mappings">
            <props>
                <prop key="/dwr/*">dwrController</prop>
                <prop key="/interface/**">dwrController</prop>
            </props>
        </property>
</bean>

最后在瀏覽器訪問http://localhost:8080/webapp/dwr/

這里有一個奇怪的問題

就是上面的dao和service用注解注入的時候會報千奇百怪的異常信息。也不知道是什么原因,暫且不去管了,在整個整合過程中換了無數個dwr的jar包。可以說dwr的版本真的很坑爹。官方3.0系列至今沒有發行正式版的版本,所以難免會出現千奇百怪的問題,有知道的朋友,可以告訴我一聲,先謝過了。。。。

來自:http://blog.csdn.net/sxyx2008/article/details/8000381

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!