读书人

dwr框架与spring结合 出错?解决办法

发布时间: 2012-01-29 21:39:32 作者: rapoo

dwr框架与spring结合 出错?
这里要如何写?

我改用注解:
web.xml

XML code
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"    id="WebApp_ID" version="3.0">    <display-name>testStruts2</display-name>    <filter>        <filter-name>struts2</filter-name>        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>struts2</filter-name>        <url-pattern>*</url-pattern>    </filter-mapping>    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:beans.xml</param-value>    </context-param>    <welcome-file-list>        <welcome-file>index.jsp</welcome-file>    </welcome-file-list>        <servlet>        <description>DWR controller servlet</description>        <servlet-name>DWR controller servlet</servlet-name>        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>        <init-param>            <param-name>classes</param-name>            <param-value>            serviceImple.UserManagerImple              </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>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>DWR controller servlet</servlet-name>        <url-pattern>/dwr/*</url-pattern>    </servlet-mapping></web-app>



UserManagerImple.java
Java code
package serviceImple;import javax.annotation.Resource;import org.directwebremoting.annotations.DataTransferObject;import org.directwebremoting.annotations.Param;import org.directwebremoting.annotations.RemoteMethod;import org.directwebremoting.annotations.RemoteProperty;import org.directwebremoting.annotations.RemoteProxy;import org.directwebremoting.spring.SpringCreator;import org.springframework.stereotype.Component;import dao.UserDao;import model.User;import service.UserManager;@Component(value="userManageImple")@RemoteProxy(creator =SpringCreator.class,          creatorParams = @Param(name = "beanName", value = "userManageImple"),           name="userManageImple")      public class UserManagerImple implements UserManager{        private UserDao userDao;   @Override    public void add(User user) {        // TODO Auto-generated method stub        userDao.save(user);    }    @Resource(name="userDaoImple")    public void setUserDao(UserDao userDao) {        this.userDao = userDao;    }    public UserDao getUserDao() {        return userDao;    }    @Override    @RemoteMethod()    public boolean isUserExistByEmail(String email) {        // TODO Auto-generated method stub        System.out.println("isUserExistByEmail "+email);        return userDao.checkUserByEmail(email);            }    } 




register.jsp
HTML code
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><script type='text/javascript' src='/ssh/dwr/interface/userManageImple.js'></script>  //这里为什么找不到<script type='text/javascript' src='/ssh/dwr/engine.js'></script><script type='text/javascript' src='/ssh/dwr/util.js'></script><script type='text/javascript'>   function regUserChked(){     var email=DWRUtil.getValue("email");//这一句没有执行  userManageImple.isUserExistByEmail(email,showData);//showData回调函数   //即使上一句执行,这一句也没有执行  return false; }    function showData(data){        if(data){         DWRUtil.setValue("userMsg","该用户名已经被注册,请更换您的用户名!");     }else{             DWRUtil.setValue("userMsg","恭喜您,该用户名尚未被注册!");              }      }   </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>    <form action="user/register" method="post" onsubmit="return regUserChked()">        用户名字<input type="text" name="name" /> <br />         邮箱账户<input type="text" name="email" id="email"/><div id="userMsg"></div><br />         密码<input type="password" name="password" /><br />        确认密码<input type="password" name="password2" /><br />        <button type="submit">提交</button>    </form></body></html>
















从昨天弄到今天,都没成功





<script type='text/javascript' src='/ssh/dwr/interface/userManageImple.js'></script> //这里为什么找不到
var email=DWRUtil.getValue("email");//这一句没有执行
userManageImple.isUserExistByEmail(email,showData);//showData回调函数 //即使上一句执行,这一句也没有执行

[解决办法]
<script type='text/javascript' src='/ssh/dwr/interface/userManageImple.js'></script> //这里为什么找不到
DWR自动生成的,你的web.xml的配置需要修改:
XML code
          <url-pattern>/[color=#FF0000]ssh[/color]/dwr/*</url-pattern>
[解决办法]
首先http://127.0.0.1:8080/项目名/dwr
查看dwr配置是否成功,查看dwr关联的方法返回值是否有问题

然后:
var email=DWRUtil.getValue("email");//这一句没有执行
把这句去了,给email赋死值,测试dwr的调用有问题没有,没有问题,那就是你
var email=DWRUtil.getValue("email");的问题

你那个DWRUtil是什么类???哪来的?????
[解决办法]
是不是dwr.xml的内容配置不太对啊...
参考:http://wl-ldy.iteye.com/admin/blogs/1038633
http://wl-ldy.iteye.com/admin/blogs/837084
[解决办法]
这一般都是固定写法,把ssh去掉试试,只要是在web.xml配置了dwr的
<url-pattern>/dwr/*</url-pattern>

JScript code
<script type='text/javascript' src='dwr/interface/userManageImple.js'></script>  <script type='text/javascript' src='dwr/engine.js'></script><script type='text/javascript' src='dwr/util.js'></script> 

读书人网 >Java Web开发

热点推荐