开发环境:eclipse3.1.2 myeclipse4.1.1 Tomcat5.0.28 Mysql5.0
dwr类包版本是1.1
步骤一:配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>dwr-invoker</servlet-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>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
<taglib>
<taglib-uri>/WEB-INF/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/ntu</taglib-uri>
<taglib-location>/WEB-INF/tld/ntu.tld</taglib-location>
</taglib>
</web-app>
二:spring中注入相关service
<bean id="ajaxTestService" class="com.lion.cms.domain.service.AjaxTestServiceImp">
<property name="commonDAO">
<ref bean="commonDAO" />
</property>
</bean>
三:AjaxTestServiceImp代码
public class AjaxTestServiceImp implements IAjaxTestService {
private ICommonDAO commonDAO;
public void setCommonDAO(ICommonDAO commonDAO) {
this.commonDAO = commonDAO;
}
public List getEmployeeById(String deptid) {
DetachedCriteria detachedCriteria=DetachedCriteria.forClass(Employee.class);
detachedCriteria.setFetchMode(Employee.PROP_DEPTID,FetchMode.JOIN);
detachedCriteria.add(Restrictions.eq(Employee.PROP_DEPTID+".id",deptid));
List result=commonDAO.findByCriteria(detachedCriteria);
return result;
}
}
四:dwr.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="spring" javascript="ajaxTestService">
<param name="beanName" value="ajaxTestService" />
<include method="getEmployeeById" />
</create>
<convert converter="bean" match="com.lion.cms.domain.pojo.Employee">
<param name="exclude" value="com.lion.cms.domain.pojo.Dept"/>
</convert>
</allow>
</dwr>
五:jsp页面
<html:select styleId="deptid" property="deptid" onchange="loadEmployList(this.value)">
<html:optionsCollection name="deptlist" label="deptname" value="id"/>
</html:select>
<html:select property="employee" styleId="employee">
<html:option value="" >请选择</html:option>
</html:select>
<script type="text/javascript">
<!--
// 加载employee下拉列表。
function loadEmployList(deptid){
if(deptid==null||deptid==''){
clearEmployeeSel();
return;
}
ajaxTestService.getEmployeeById(loadEmployListCallback,deptid);
}
var loadEmployListCallback=function(items){
clearEmployeeSel();
DWRUtil.addOptions("employee",items,"id","truename");
}
function clearEmployeeSel(){
DWRUtil.removeAllOptions("employee");
DWRUtil.addOptions("employee",[{label:'请选择',value:''}],"value","label");
}
//-->
</script>
职工和部门是多对一关系,例子简单,不详细叙述了
分享到:
相关推荐
在实际开发中,DWR的用法实例可能包括但不限于以下几种情况: - **用户界面实时更新**:例如,在聊天应用中,当有新消息时,服务器可以通过DWR主动向客户端发送更新,实时显示新消息。 - **数据表格动态加载**:在...
通过实践一个简单的DWR实例,你可以更好地理解如何在实际项目中使用它来构建高效、响应式的Web应用。随着对DWR的深入理解和应用,你会发现它不仅可以提升开发效率,还能显著提升应用的用户体验。
ajax框架:dwr实战.pdfajax框架:dwr实战.pdfajax框架:dwr实战.pdfajax框架:dwr实战.pdfajax框架:dwr实战.pdf
这个压缩包文件"dwrtest"很可能包含了9个经典的DWR实例,这些实例通常会展示DWR的主要功能和用法。以下是关于DWR的一些关键知识点的详细介绍: 1. **远程方法调用(RMI-like)**: DWR的核心特性是能够像本地方法一样...
ajax框架:dwr》实战(包括整合)ajax框架:dwr》实战(包括整合)ajax框架:dwr》实战(包括整合)ajax框架:dwr》实战(包括整合)
**DWR(Direct Web Remoting)**是一种JavaScript库和Java框架,它允许Web应用程序实现双向通信,即在客户端浏览器和服务器之间进行实时的数据交换。DWR使得开发者可以像操作本地对象一样操作服务器端的Java对象,极...
ajax框架:dwr》实战(包括整合).pdfajax框架:dwr》实战(包括整合).pdfajax框架:dwr》实战(包括整合).pdfajax框架:dwr》实战(包括整合).pdf
4. **HTML和Ajax交互**:实例可能会包含一些HTML页面,展示了如何使用DWR的JavaScript API创建AJAX请求,更新页面内容,以及处理用户交互。 5. **安全性和性能优化**:DWR支持缓存和批处理,以提高性能。此外,为了...
ajax框架:dwr和ext实战.pdf ajax框架:dwr和ext实战.pdf ajax框架:dwr和ext实战.pdf
- **应用实例**:例如,服务器端返回一个`List<User>`,DWR会将其转换为JavaScript数组。 **6. JAVA对象与JS对象的对接** - **对象映射**:DWR支持将Java对象映射为JavaScript对象,方便在客户端使用。 - **属性...
ajax框架:dwr+实战(包括整合) ajax框架:dwr+实战(包括整合) ajax框架:dwr+实战(包括整合)
《ajax框架:dwr与ext》实战《ajax框架:dwr与ext》实战
在你提供的实例中,“dwr实例,从后台取数据显示”表明这是一个使用DWR从服务器获取数据并在前端展示的简单应用。 1. **DWR的工作原理**:DWR通过在服务器上设置一个代理,允许JavaScript调用Java方法,就像它们是...
ajax框架:dwr 实战(包括整合).
ajax框架:dwr与ext》实战.pdf