DWR的注意事项【转】

DWR现在比较火,不少朋友用它来开发项目,虽然它以配置简单和功能强大著称,当然事实也的确如此.但是一些初学者还是会犯一些错误,这里简单列举了一些经常遇到的问题!

1.在dwr.xml中类型转换时,既<convert converter="bean" match="your.full.package.BeanName"/>

转换的Bean必须符合JavaBeans的规范,属性要符合一个条件:有getter和setter,setter应该返回void,没有重载。getter应该没有任何参数。如果你想直接取对象的成员,那么你应该用object。

 

2.在dwr.xml的create中通过BSF使用脚本语言创建对象:

 

 <create creator="script" javascript="EmailValidator">

    <param name="language" value="beanshell"/>

    <param name="script">

      import org.apache.commons.validator.EmailValidator;

      return EmailValidator.getInstance();

    </param>

  </create>

 

要使用这个创造器,需要把一些辅助库放到WEB-INF/lib文件夹下:BSF的jar包和你用到的语言的jar包。

如(bsf.jar,jdom.jar)

 

3.在java中支持函数的重载,而javascript是不支持重载,所以在DWR用到的java类中尽量不要重载,还有,java类名和方法名不能出现java和javascript的保留关键字,虽然多数Javascript的关键字和Java是相同的,但是还有一些不一样(如delete),一定要注意。

 

4.在web.xml中配置DWR时,如果是有多个dwr.xml文件,在下面的配置时:

<init-param>

<param-name>config-user</param-name>

<param-value>WEB-INF/dwr-user.xml</param-value>

</init-param>

 

param-name的值必须是唯一的,这点不说大家也知道,值得一提的是它必须是以config开头。

 

5.配置完dwr.xml,要测试函数时,修改web.xml,加上红色字体的部分:

 

<servlet>

   <servlet-name>dwr-invoker</servlet-name>

   <display-name>DWR Servlet</display-name>

   <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>

   <init-param>

    <param-name>debug</param-name>

    <param-value>true</param-value>

  </init-param>  

 </servlet>

 

这样,在http://localhost:8080/[YOUR-WEBAPP]/dwr/ 可以看到在dwr.xml中create过的类的javascript名称,接着往里点,你会看到所有可以调用的方法列表。这个页面是动态生成用来测试的例子。但是要注意的是,在正式环境中是不允许这样公开暴露的,所以应该把debuy设置为false,还好系统默认的就是false。

posted on 2013-01-29 10:51  Dream_c  阅读(394)  评论(0编辑  收藏  举报