DWR2.0以上版本支持通过配置Annotation的方式来配置DWR,
可以完全抛弃dwr.xml.
1.和用dwr.xml的配置稍稍有一些不一样。来看看:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>

<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>classes</param-name>
<param-value>
com.TestAction,
com.User
</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>



<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
注意对于内部类的语法标识,要用$符号 。例如
2.来看一下远程访问类怎么配置:
packagecom;

importorg.directwebremoting.annotations.RemoteMethod;
importorg.directwebremoting.annotations.RemoteProxy;
/*
类注解,其中name是非必须的。不加的时候就和类名一样。
*/
@RemoteProxy(name="test")
publicclassTestAction
{
/**
*远程调用的方法都须加上此注解,否则无法调用
*@parama
*@paramb
*@return
*/
@RemoteMethod
publicintadd(inta,intb)
{
returna+b;
}

@RemoteMethod
publicintminus(inta,intb)
{
returna-b;
}

@RemoteMethod
publicintmultiply(inta,intb)
{
returna*b;
}

publicintdevide(inta,intb)
{
if(b!=0)
returna/b;
return0;
}

//测试Bean
@RemoteMethod
publicStringtestName()
{
Useruser=newUser();
user.setUsername("zdw");
returnuser.getUsername();
}
}
3.再来看看Bean的转换:
packagecom;

importorg.directwebremoting.annotations.DataTransferObject;
importorg.directwebremoting.annotations.RemoteProperty;

@DataTransferObject
publicclassUser
{
privateIntegerid;
privateStringusername;

@RemoteProperty
publicIntegergetId()
{
returnid;
}

publicvoidsetId(Integerid)
{
this.id=id;
}

@RemoteProperty
publicStringgetUsername()
{
returnusername;
}

publicvoidsetUsername(Stringusername)
{
this.username=username;
}
}
部署之后,打开调试页,我们将看到:
add(1,2);3
multiply(4,5);20
minus(1,10);-9
devide(1,1);
(Warning:devide()isexcluded:Methodaccessisdeniedbyrulesindwr.xml.Seebelow)
testName();"zdw"
我们发现没标注释的devide()方法没法调用。
如果你想通过Spring注入来配置DWR只需加入:
@RemoteProxy(name="test",creator=SpringCreator.class,creatorParams=
{@Param(name="beanName",value="test")})
对应:
<createjavascript="test"creator="spring">
<!--其中name是固定值,value是在xml注入的bean-->
<paramname="beanName"value="test"/>
</create>
creator :默认就是NewCreate了。
ok,基本完成,这样是不是方便多了。~
可以完全抛弃dwr.xml.
1.和用dwr.xml的配置稍稍有一些不一样。来看看:





































注意对于内部类的语法标识,要用$符号 。例如
java.util.Map$Entry
而不是 java.util.Map.Entry
2.来看一下远程访问类怎么配置:



















































3.再来看看Bean的转换:

































部署之后,打开调试页,我们将看到:







如果你想通过Spring注入来配置DWR只需加入:






creator :默认就是NewCreate了。
ok,基本完成,这样是不是方便多了。~