请教个dwr类型转换问题

请教个dwr类型转换问题
最新回答
╰→丫丫

2022-02-10 01:36:55

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>