先说说注释语法,省掉dwr.xml。(自从用了java 5 之后,现在越看一堆堆的配置文件越烦,越来越喜欢注释方式来的直接简单了)
首先下载最新的稳定版本的dwr.jar文件放到你的工程中。(还有需要其它的吗?不需要了,dwr就是这么简单)
然后在web.xml中添加如下一段
<!-- DWRServlet -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<!-- 默认为false,调试用,可以访问http://地址:端口/上下文/dwr 来进行测试 -->
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<!--这就是传说中的DWR反转调用的开关了,默认也是false -->
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<!--日志级别不多说了-->
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
<!--这块注意了,关键来了,把使用DWR注释的类都要加在这里,2.0的DWR好像还不支持包扫描,希望以后能提供这个功能,3.0我还没注意有没有这个功能,现在还没出正式版-->
<init-param>
<param-name>classes</param-name>
<param-value>
org.relax.service.SectionManager,
org.relax.service..entity.Section
</param-value>
</init-param>
</servlet>
<!--这块不用多说了吧,如果看不懂,哪凉快哪呆着去吧-->
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
在这里再说明一下有的文章用的是uk.ltd.getahead.dwr.DWRServlet,其实他只是继承了一下 org.directwebremoting.servlet.DwrServlet自己什么也没做,所以这两个类用哪个都行(这么做应该是为了兼容以前的版本,猜的,1.0我没用过)。
下面看具体的类吧。
@Service
@RemoteProxy(creator = SpringCreator.class, name = "sectionManager", creatorParams = @Param(name = "beanName", value = "sectionManager"))
public class SectionManager extends DefaultEntityManager<Section, Integer> {
@Autowired
OriginCollectDataManager originCollectDataManager;
@RemoteMethod
public Section get(Integer id) {
return super.get(id);
}
@RemoteMethod
public List<Section> getAll() {
return super.getAll();
}
}