DWR3.0与Spring MVC集成方法

前端之家收集整理的这篇文章主要介绍了DWR3.0与Spring MVC集成方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

1.集成步骤

1.1 添加pom依赖

<dependency>
<groupId>org.apache.geronimo.bundles</groupId>
<artifactId>dwr</artifactId>
<version>3.0.M1_1</version>
</dependency>

1.2 web.xml修改添加dwr-servlet

<!-- dwr servlet -->
< servlet >
description >dwr-invoker</ >
servlet-name >
servlet-class >org.directwebremoting.servlet.DwrServlet</ >
< init-param >
param-name >classes</ >
param-value >com.panguso.op.data.manager.service.general.GeneralContentManagementService</ >
</ >
>
>debug</ >
>true</ >
>
>
>crossDomainSessionSecurity</ >
>false</ >
</ >
</ >
servlet-mapping >
>
url-pattern >/dwr/*</ >
>

1.3 标注需要引用的类,如这里添加的GeneralContentManagementService

@Service
@RemoteProxy
public class GeneralContentManagementService {
private ContentManagementServiceAPI contentManageAPI = ContentManagementServiceAPI.getInstance();
ResourceManagementServiceAPI resManageAPI = ResourceManagementServiceAPI.getInstance();
private static BeanSchemaServiceAPI beanServiceAPI = BeanSchemaServiceAPI.getInstance();
/** * 判断一个类型的beanSchema是否保存在MysqL
*
* @param dataType 数据类型
* @param beanSchemaName beanSchema名称
* @return
* @author fangqi
* @date 2013-6-4
*/
@RemoteMethod
boolean checkBeanSchemaIsInMysqL(String dataType,String beanSchemaName)
{
List<BeanSchema> beanSchemas = beanServiceAPI.getMergedBeanPropertiesByDataType(dataType);
for (BeanSchema beanSchema : beanSchemas)
{
if (beanSchema.getEname().equals(beanSchemaName))
{
(beanSchema.getIsStoredInMysqL())
{ return true ;
}
}
}
false ;
}

配置完成后,启动tomcat应用,输入地址http://localhost:8180/<webappname>/dwr如果能看到如下界面,说明配置成功:

2.使用步骤

2.1 在需要调用的jsp文件添加js引用

<!-- 第一个为你需调用的java类的名称+.js -->
<script type= 'text/javascript' src= 'dwr/interface/GeneralContentManagementService.js' ></script>
<!-- 第二三个为通用,都要加-->
'dwr/engine.js' ></script>
'dwr/util.js' ></script>

2.2 js中使用

//判断所选的字段是否存在MysqL中,如果不存在,返回
dwr.engine.setAsync( false );
for ( var i = 0; i < groupFields.length; i++) {
callback = function (data){
if (!data) {
alert( "选择分组字段" + groupFields[i] + "没有保存在MysqL中,不能用来作为分组字段" );
}
};
GeneralContentManagementService.checkBeanSchemaIsInMysqL(dataType,groupFields[i],callback);
}
true );

猜你在找的Ajax相关文章