本文以实例形式描述在jsf中配置dwr的方法。
应用要求:在javascript方法中调用后台Bean的方法和Spring容器中服务的方法。
步骤如下:
1、 JAR包支持
dwr.jar、json-lib-2.3-jdk13.jar,ezmorph-1.0.6.jar
说明:依赖的jar包:commons-collections-XX.jar,版本必须在3.0以上
2、web.xml配置DwrServlet和FacesExtensionFilter
<!-- dwr begin -->
<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>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!--DWR/Faces 过滤器允许你不在JSF的生命周期里调用FacesContext中的Bean。-->
<filter>
<filter-name>DwrFacesFilter</filter-name>
<filter-class>org.directwebremoting.faces.FacesExtensionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>DwrFacesFilter</filter-name>
<url-pattern>/dwr/*</url-pattern>
</filter-mapping>
<!-- dwr end -->
<!--[if !supportLists]--> 3、 <!--[endif]-->在WEB-INF下建立dwr.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<!--调用jsf后台Bean的方法-->
<create creator="jsf" javascript="BranchMerg">
<param name="managedBeanName" value="BranchMerg" />
<param name="class"
value="cn.ccb.zjtsrmbp.security.web.bb.BranchMerg" />
</create>
<!--直接调用spring容器内服务的方法-->
<create javascript="billBranch" creator="spring">
<param name="beanName" value="securityBillBranchNewUCCTarget" />
</create>
</allow>
</dwr>
4、 Service里的方法范例
public String getSubBillBranch(String orgNo) {
List objects=XXX;//可序列化的对象
JSONArray jsonArray = JSONArray.fromObject(objects);//通过json方式进行序列化
String jsonStr = jsonArray.toString();
return jsonStr;
}
5、JS方法调用DWR
<script type="text/javascript"
src="<%=request.getContextPath()%>/js/util.js"></script>
<script type='text/javascript'
src='<%=request.getContextPath()%>/dwr/engine.js'></script>
<!---下面的billBranch.js名称对应dwr.xml里的配置--->
<script type='text/javascript'
src='<%=request.getContextPath()%>/dwr/interface/billBranch.js'></script>
………………………….
<script >
方法一:js方法里直接获取spring容器内对象,并调用方法
//参数
var tempBranchCode = '<%=request.getSession().getAttribute("logonBranchId")%>';
//直接使用,并传参,指定回调函数
billBranch.getSubBillBranch(tempBranchCode,invokeFun);
//回调函数接收java方法的json结果,并做解析
function invokeFun(data){
alert(data);
}
方法二:js直接调用指定后台bean的方法
function go(){
BillFee.findFirstPage(invokeFun);
}
function invokeFun (){
alert(“over!”);
}
</script>
分享到:
相关推荐
dwr.jar bsf.jar jdom.jar jsf-api.jar
34 4.2.4 使用Spring配置DWR 35 4.3 DWR与JSF 36 4.3.1 JSF Creator 36 4.3.2 Servlet Filter 36 4.4 DWR与Struts 37 4.4.1 Struts creator 37 4.4.2 开始顺序 37 4.5 DWR与...
ajax框架DWR简介,文件配置,与servlet、spring、jsf、struts等常用框架的整合,DWR函数介绍,范例,附录
在JNDI中配置数据源(DataSource) 内嵌Jetty服务器 内嵌Jetty教程 内嵌Jetty的HelloWorld教程 内嵌Jetty视频 优化Jetty 如何配置垃圾收集 如何配置以支持高负载 在Jetty中部署应用 部署管理器 部署绑定 热部署 ...
16.5 Spring中带有DWR的支持Ajax的应用程序 16.5.1 直接Web远程控制 16.5.2 访问Spring管理的Bean DWR 16.6 小结 附录A 装配Spring A.1 下载Spring A.1.1 研究Spring发布 A.1.2 构建自己的类路径 A.2 把...
16.5 Spring中带有DWR的支持Ajax的应用程序 16.5.1 直接Web远程控制 16.5.2 访问Spring管理的Bean DWR 16.6 小结 附录A 装配Spring A.1 下载Spring A.1.1 研究Spring发布 A.1.2 构建自己的类路径 A.2 把...
16.5spring中带有dwr的支持ajax的应用程序 16.5.1直接web远程控制 16.5.2访问spring管理的beandwr 16.6小结 附录a装配spring a.1下载spring a.1.1研究spring发布 a.1.2构建自己的类路径 a.2把spring添加为一...
1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.3 工作原理 14 1.4 解决构造程序歧义 17 ...
1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.3 工作原理 14 1.4 解决构造程序歧义 17 ...
PrettyFaces优雅的解决了这个问题,包括诸如功能:网页装载行动,无缝的跟faces的导航整合,动态视图的ID分配和管理参数分析,无需配置,兼容其他JSF框架。P ... by zly06 2009-09-09 回复 (0) 相关博客 ant模板 ...