DWR帮助我们将本地的javascript脚本函数调用转变成对远程java对象函数的调用。在函数的调用过程中我们需要传递参数,这样我们就需要将本地的javascript变量转变成对应的java类型变量。这个就是Convertor的作用。DWR内部为我们 编写了一些JAVA主要类型的Convertor.默认下面的数据类型会自动转换:boolean, byte, short, int, long, float, double, char, java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Character, java.math.BigInteger, java.math.BigDecimal and java.lang.String.但是假如我们有这样一个方法A.setB(B b),现在我们要在javascript脚本中调用该方法,我们需要传递java类型为B的参数,这个时候我们就需要配B配置Convertor.下面我 们编写一个添加用户的简单程序:
1、写一个用户信息Bean:UserBean,包含简单的userName,userPassword信息。
2、写一个类,里面包含添加用户函数DwrService.addUser(UserBean user)代码如下:
package test;
import java.io.IOException;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import javax.servlet.ServletException;
public class DwrService {
public String check(String name){
//访问数据库验证信息
if(name.startsWith("aa")){
return "用户已经存在";
}
else{
return "可以使用该用户";
}
}
public String getInclude() throws ServletException, IOException
{
return WebContextFactory.get().forwardToString("/test.jsp");
}
public String addUser(UserBean user){
//将用户信息添加到数据库中
return "Name:"+user.getUserName()+";Password="+user.getUserPassword();
}
}
3、配置dwr.xml文件,注册类方法和Converte信息
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<convert converter="bean" match="test.UserBean"/>
<create creator="new" javascript="DwrService">
<param name="class" value="test.DwrService"/>
</create>
</allow>
</dwr>
4、编写页面文件,提供功能。index.html
<html>
<head>
<script type='text/javascript' src='/test/dwr/interface/DwrService.js'></script>
<script type='text/javascript' src='/test/dwr/engine.js'></script>
<script type='text/javascript' src='/test/dwr/util.js'></script>
<script LANGUAGE=javascript>
<!--
function addUser() {
var user={userName:null,userPassword:null};
dwr.util.getValues(user);
DwrService.addUser(user,function(data) {
dwr.util.setValue("userInfo",data);
});
}//-->
</script>
</head>
<body>
<hr>
name:<input type="text" id="userName"/>
<br>
password:<input type="text" id="userpassword"/>
<br>
<input value="submit" type="button" onclick="addUser()" />
<br>
<span id="userinfo"></span>
</body>
</html>
5、现在我们就可以通过Bean Converter将javascript变量user转变成java类型UserBean类型传给java方法了。
说明:dwr.util.getValues(Object);如同dwr.util.getValue("id")方法,用来将页面中的元素内容复制到变量中,与getValue不同getValues方法不返回值内容而是修改参数Object中的信息。Object中的内容是一些键值对,键对应到页面 元素的id属性,值对应元素的内容。我们可以通过将页面元素的id设置为Bean的属性,然后通过该方法轻松的获取用户的输入信息。
与读取属性相对的是设置页面元素的属性:setValue()和setValues()
分享到:
相关推荐
- 例如,一个简单的示例可能是创建一个XML文档,通过调用`Document`类的`createInstance()`方法,然后使用XMLBean生成的Java类来设置XML元素和属性。 4. XMLBean的主要功能: - XML到Java对象的映射:XMLBean能...
数据库(Hutool-db)部分为数据库操作提供了简便的方法,包括数据库简单操作、支持事务的CRUD、数据源配置、样例数据源工厂(DsFactory)、SQL执行器(SqlExecutor)等。 Http客户端工具类(HttpUtil)、Http请求...
7. J2EE项目的技术实现:书中涵盖的主题包括数据访问、实体bean的数据访问、会话bean、基础设施和应用实现,以及Web层的MVC设计。这些内容是理解J2EE应用构建过程不可或缺的。 8. 应用程序打包与部署:这是任何开发...
在描述中提到的"表格demo样例",通常包含了简单列表、图表和表单的使用方法。例如,"简单列表"可能展示数据库中的数据;"图表"可能涉及了Ureport2的数据统计和可视化能力;"表单简单使用"则可能展示了如何在报表中...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf