本人刚刚自学了dwr,按照网上的讲解测试了dwr返回值为javabean,list,map,String[],String都没问题,但是在测试带javabean参数的时候出问题了,老是返回Error,为此又看了很多视频讲解,但是始终没找到问题所在,百度百科上的讲解也是和我写的一样,求各位大神指点,下面是代码
java代码
public class dwrtest {
public String test3(User user){
return user.getUser();
}
}
User.java
public class User {
private String user;
private String password;
public User(String user, String password) {
super();
this.user = user;
this.password = password;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
dwr.xml
<?xml version="1.0" encoding="UTF-8"?>
<dwr>
<allow>
<create creator="new" javascript="testClass" class="com.niit.action.dwrtest">
</create>
<convert converter="bean" match="com.niit.action.User" >
<param include="include" value="user,password"/>
</convert>
</allow>
</dwr>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>dwr.jsp</welcome-file>
</welcome-file-list>
<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>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<description>Direct Web Remoter Servlet</description>
<!-- <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>-->
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</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>
</web-app>
jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'dwr.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/testClass.js"></script>
<script>
$(function(){
$("#btn").click(function(){
testClass.test3({user:"tom",password:"111"},function(data){alert(data);});
});
});
</script>
</head>
<body>
<input type="button" name="btn" id="btn" value="点击"/>
</body>
</html>
相关推荐
在“调用带JavaBean参数方法的DWR例子”中,我们将深入探讨如何使用DWR来调用包含JavaBean作为参数的方法。 首先,我们需要理解DWR的基本工作原理。DWR通过创建一个JavaScript接口,该接口映射到服务器上的Java类和...
调用带有JavaBean参数的方法,如`callTestMethod5`,需要创建一个JavaScript对象来模拟JavaBean,并将其作为参数传递给Java方法。这里的`data`对象具有与JavaBean相同的属性。 6. **返回List、Set或Map的Java方法...
5. **调用有JavaBean参数的Java方法**: 如果Java方法接受JavaBean作为参数,配置方式与返回JavaBean类似,只需要确保在`dwr.xml`中配置对应的`<param>`标签来指定要包含的属性。在JavaScript中,你可以直接将匹配的...
2. **配置web.xml**:在`web.xml`中添加DWRServlet的配置,设置DWR的相关参数,如开启调试模式等。 3. **配置dwr.xml**:在`WEB-INF`目录下创建`dwr.xml`文件,指定哪些JavaBean需要生成对应的JavaScript库。 ```...
同时,DWR的日志系统可以帮助开发者跟踪和诊断问题。 7. **集成其他框架**: DWR可以很好地与其他Java Web框架如Spring、Struts等集成,扩大了其应用范围。例如,你可以在Spring MVC应用中使用DWR,使得前端与后端...
在JavaScript端,接收到的返回值可以直接用于操作,因为DWR会映射JavaBean的属性到JavaScript对象的属性。 5. **更复杂的调用方式** 除了上述的基本调用方式,DWR还支持异步调用、批量调用、传递数组和集合、异常...
在JavaScript中,DWR会自动将JavaBean转换为JavaScript对象,便于在客户端操作。例如,`testMethod4`可能返回一个JavaBean,这个JavaBean将在`callBackFortestMethod4`回调函数中以JavaScript对象的形式接收。 除了...
- 配置文件`dwr.xml`是关键,错误的配置可能导致功能失效或安全问题。 - 调用Java方法时需注意同步和异步调用的区别,以及如何处理回调。 - DWR的安全性依赖于配置,需要正确设置访问控制以防止未授权的访问。 8...
在JavaScript端,我们可以像传递基本类型一样传递JavaBean类型的参数: ```javascript function callTestMethod3() { var data = new TestBean(); data.username = 'user1'; data.password = 'password1'; ...
DWR 也能把 JavaBean 转换成 JavaScript 表示,但是出于安全性的原因,要求显式的配置, `<convert>` 标签就是完成此功能的。 converter 属性指定转换的方式,例如 "bean" 表示采用 JavaBean 命名规范。match 属性...
对于返回JavaBean的方法,DWR会自动将JavaBean转换为JavaScript对象。配置如下: ```xml <param name="class" value="/com/dwr/TestClass"/> ``` 在JavaScript中,你将得到一个JavaScript对象,可以...
如果Java方法返回一个JavaBean,你需要在`dwr.xml`配置文件中添加`<convert>`标签,指定使用“bean”转换器并将匹配的类设置为你的JavaBean类。在JavaScript端,接收到的JavaBean会自动转换成一个JavaScript对象,...
此处的`debug`参数用于开启调试模式,便于开发过程中问题定位。 ##### 3. 配置`dwr.xml` 在`WEB-INF`目录下创建`dwr.xml`文件,用于指定哪些JavaBean将被DWR生成相应的JavaScript库。例如: ```xml <!DOCTYPE ...
【DWR(Direct Web Remoting)】是一种Java技术,...无论是无返回值、简单返回值、有参数或返回JavaBean的方法,都可以通过DWR实现客户端和服务器之间的双向通信。理解这些配置和调用机制是使用DWR进行Ajax开发的关键。
这些方法的参数和返回值应与JavaScript兼容,例如基本类型或JavaBean。 5. **配置JSF页面**:在JSF视图层,使用JSF组件(如h:outputScript)引入DWR生成的JavaScript代码,并创建对应的JavaScript函数调用Java服务...
- DWR提供了自动转换机制,如JavaBean的转换。在 `dwr.xml` 中,使用 `<convert>` 标签定义转换规则,使得JavaBean可以被透明地传递到JavaScript。例如,`<convert converter="bean" class="com.dwr.MyBean"/>` 将...
DWR的灵活性在于它可以处理各种类型的Java方法调用,包括无返回值、简单返回值、带参数以及返回复杂对象的方法。同时,通过回调函数,开发者可以在JavaScript中实时处理服务器返回的数据,实现了真正的富客户端应用...
下面我们将深入探讨DWR的基本使用方法,包括调用无返回值和参数的Java方法、调用有简单返回值的Java方法、调用有简单参数的Java方法以及调用返回JavaBean的Java方法。 1. 调用没有返回值和参数的JAVA方法 在`dwr....
在开发过程中,可以开启DWR的调试模式,以获取更详细的日志信息,帮助定位问题。 总之,DWR为JavaScript和Java之间提供了高效且灵活的数据交换机制,使得在Web应用中实现动态交互变得更加容易。通过正确配置`dwr....