開發(fā)環(huán)境: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中注入相關(guān)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" "
<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"/>
?</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>
職工和部門是多對一關(guān)系,例子簡單,不詳細(xì)敘述了
dwr中spring和hibernate的配置相關(guān)幫助文檔:
http://getahead.ltd.uk/dwr/server/spring
http://getahead.ltd.uk/dwr/server/hibernate
dept.hbm.xml代碼如下:
<hibernate-mapping package="com.lion.cms.domain.pojo">
?<class
?? name="Dept"
??table="dept"
?>
?<meta attribute="sync-DAO">false</meta>
???<id
???name="id"
???type="string"
???column="id"
??>
???<generator class="uuid.hex"/>
??</id>
??<property
???name="deptname"
???column="deptname"
???type="string"
???not-null="true"
???length="12"
??/>
??<property
???name="creattime"
???column="creattime"
???type="java.lang.Long"
???not-null="false"
???length="20"
??/>
?
?</class>?
</hibernate-mapping>
employee.hbm.xml代碼如下:
<hibernate-mapping package="com.lion.cms.domain.pojo">
?<class
??name="Employee"
??table="employee"
?>
??<meta attribute="sync-DAO">false</meta>
??<id
???name="id"
???type="string"
???column="Id"
??>
???<generator class="uuid.hex"/>
??</id>
??<property
???name="username"
???column="username"
???type="string"
???not-null="true"
???length="20"
??/>
??<property
???name="password"
???column="password"
???type="string"
???not-null="false"
???length="20"
??/>
??<property
???name="truename"
???column="truename"
???type="string"
???not-null="false"
???length="11"
??/>
??<property
???name="sex"
???column="sex"
???type="string"
???not-null="false"
???length="2"
??/>
??<property
???name="intro"
???column="intro"
???type="string"
???not-null="false"
??/>
??<many-to-one
???name="deptid"
???column="deptid"
???class="Dept"
???not-null="true"
??>
??</many-to-one>
?</class>?
</hibernate-mapping>
用hibernate同步插件可以快速生成po
?