`

简单实用BEAN方法样例

    博客分类:
  • DWR
 
阅读更多
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()
分享到:
评论

相关推荐

    castor样例xml to bean和bean to xml样例

    Castor是一个Java库,用于将XML数据映射到Java对象(即bean)和从Java对象反向映射回XML。...通过深入理解并实践“castor-1.3.1-examples.zip”中的样例,开发者可以更好地掌握和运用Castor的功能。

    spring的bean加载顺序样例项目

    在"spring的bean加载顺序样例项目"中,我们可以通过分析和实验来深入理解这一主题。下面将详细阐述Spring Bean的加载顺序以及相关知识点。 1. **Bean的定义与作用域** - Spring中的Bean是在`beans.xml`或Java配置...

    java高手真经 高级编程卷 卷4(4卷)

    会话Bean开发样例 MDBTest.zip //05.消息驱动Bean开发样例 EntityBeanTest.zip //06.实体Bean开发样例 ORMTest.zip //07.实体对象映射ORM开发样例 JPQLTest.zip //08.实体查询语言JPQL开发样例 JAASTest....

    java高手真经 高级编程卷 光盘内容 卷1(4卷)

    会话Bean开发样例 MDBTest.zip //05.消息驱动Bean开发样例 EntityBeanTest.zip //06.实体Bean开发样例 ORMTest.zip //07.实体对象映射ORM开发样例 JPQLTest.zip //08.实体查询语言JPQL开发样例 JAASTest....

    java高手真经 高级编程卷 卷3(4卷)

    会话Bean开发样例 MDBTest.zip //05.消息驱动Bean开发样例 EntityBeanTest.zip //06.实体Bean开发样例 ORMTest.zip //07.实体对象映射ORM开发样例 JPQLTest.zip //08.实体查询语言JPQL开发样例 JAASTest....

    java高手真经 高级编程卷 卷2(4卷)

    会话Bean开发样例 MDBTest.zip //05.消息驱动Bean开发样例 EntityBeanTest.zip //06.实体Bean开发样例 ORMTest.zip //07.实体对象映射ORM开发样例 JPQLTest.zip //08.实体查询语言JPQL开发样例 JAASTest....

    Java中Spring获取bean方法小结

    - **通过代码注解**:Spring也支持通过注解来获取Bean,如`@Autowired`和`@Resource`,它们能够自动将依赖注入到目标字段或方法中,无需手动从ApplicationContext获取。 3. **静态Singleton Bean Manager** 通常...

    实例化Spring bean的两种工厂方法

    本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念。Spring Bean是Spring IoC容器管理的对象,这些对象的生命周期、依赖关系以及初始化行为由...

    Spring在应用中获得Bean的方法

    本篇文章将深入探讨如何在Spring应用中获取Bean,以及相关的源码分析和实用工具。 首先,Spring容器(ApplicationContext)是管理Bean的中心,它负责Bean的生命周期和依赖注入。获取Bean主要有以下几种方式: 1. *...

    Spring Bean创建初始化流程.docx

    在`doCreateBean()`方法中,Spring会创建Bean的实例,`createBeanInstance(beanName, mbd, args)`执行Bean实例的创建,而`populateBean(beanName, mbd, instanceWrapper)`则负责填充Bean的属性,将依赖注入到Bean中...

    37 SpEL Bean方法属性引用原理慕课专栏1

    37 SpEL Bean方法属性引用原理主要探讨了如何在Spring容器中,一个Bean如何引用另一个Bean的属性,并通过表达式语言(Spring Expression Language,简称SpEL)来实现这一过程。 首先,让我们理解什么是SpEL。SpEL是...

    Spring定义bean的三种方式和自动注入

    在配置类上使用`@Configuration`注解,然后使用`@Bean`注解来定义方法,该方法返回的对象会被Spring容器注册为一个Bean。 ```java @Configuration public class AppConfig { @Bean public Teacher teacher() {...

    深度转换Bean<->Bean的Mapper

    通常,这类库提供了一个简单的方法,如`map()`,接受源Bean和目标Bean类型作为参数,自动处理属性映射。例如: ```java MySource source = ...; MyDestination dest = BeanMapper.map(source, MyDestination.class)...

    XMLBean的例子

    - 例如,一个简单的示例可能是创建一个XML文档,通过调用`Document`类的`createInstance()`方法,然后使用XMLBean生成的Java类来设置XML元素和属性。 4. XMLBean的主要功能: - XML到Java对象的映射:XMLBean能...

    spring容器初始化bean和销毁bean之前进行一些操作的方法

    3. 初始化:Bean实例完成属性注入后,会调用初始化方法,可以是`@PostConstruct`注解的方法或者通过`init-method`属性指定的方法。 4. 使用:容器将Bean暴露给其他Bean使用。 5. 销毁:当容器关闭时,或者Bean不再...

    SSH笔记-静态/实例工厂方法配置bean

    在Spring框架中,Bean的创建方式多样,其中两种常见的非XML配置方式是通过静态工厂方法和实例工厂方法来创建Bean。这些方法为Spring容器提供了更灵活的Bean实例化策略,让我们深入了解一下这两种方法。 首先,静态...

    singleton Bean 创建 prototype Bean

    2. 每次请求Prototype Bean时,容器都会调用Bean的工厂方法或者构造函数来创建新的实例。 3. 如果Prototype Bean有依赖项,容器会递归地创建这些依赖的实例,直到所有依赖项都被满足。 在实际开发中,我们可以通过...

    获得spring里注册Bean的四种方法

    这种方法是最简单的方法。我们可以使用 ApplicationContext 对象来获取 Bean 对象。首先,我们需要获取 ApplicationContext 对象,然后使用其 getBean() 方法来获取指定名称的 Bean 对象。 ```java ...

    一种面向对象的Java Bean查询方法的实现

    ### 一种面向对象的Java Bean查询方法的实现 #### 概述 在Java开发中,尤其是在涉及数据库操作的应用场景下,传统的做法是直接在Java Bean中编写SQL语句来完成数据的增删改查等操作。然而,这种方法存在一些明显的...

Global site tag (gtag.js) - Google Analytics