spring mvc和struts2开发实例2

书接上文,今天讲讲struts2+spring搞定增、删、改、查,持久层使用的是jdbcTemplate。

1.配置web.xml

  引入spring和struts2功能,代码如下:

  
  
  
  
  1. <!-- 配置加载spring配置文件的监听器 --> 
  2. <listener> 
  3.     <listener-class> 
  4.         org.springframework.web.context.ContextLoaderListener 
  5.     </listener-class> 
  6. </listener> 
  7.  
  8. <!-- struts2配置 --> 
  9. <filter> 
  10.     <filter-name>struts2</filter-name> 
  11.     <filter-class> 
  12.         org.apache.struts2.dispatcher.FilterDispatcher 
  13.     </filter-class> 
  14. </filter> 
  15.  
  16. <filter-mapping> 
  17.     <filter-name>struts2</filter-name> 
  18.     <url-pattern>/*</url-pattern> 
  19. </filter-mapping> 
  20.  
  21. <welcome-file-list> 
  22.     <welcome-file>index.jsp</welcome-file> 
  23. </welcome-file-list> 

2.配置applicationContext.xml

   代码如下:

  
  
  
  
  1. <!--数据源--> 
  2. <bean id="dataSource" 
  3.     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
  4.     <property name="driverClassName"> 
  5.         <value>com.mysql.jdbc.Driver</value> 
  6.     </property> 
  7.     <property name="url"> 
  8.         <value>jdbc:mysql://localhost:3306/test</value> 
  9.     </property> 
  10.     <property name="username"> 
  11.         <value>root</value> 
  12.     </property> 
  13.     <property name="password"> 
  14.         <value>780502</value> 
  15.     </property> 
  16. </bean> 
  17.  
  18. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 
  19.     <property name="dataSource"> 
  20.         <ref bean="dataSource" /> 
  21.     </property> 
  22. </bean> 
  23.  
  24. <!--客户处理--> 
  25. <bean id="customerBean" 
  26.     class="com.wangsy.struts.action.CustomerAction" scope="prototype"> 
  27.     <property name="service" ref="customerService" /> 
  28. </bean> 
  29.  
  30. <bean id="customerService" 
  31.     class="com.wangsy.struts.service.impl.CustomerServiceImpl"> 
  32.     <property name="dao" ref="customerDao" /> 
  33. </bean> 
  34.  
  35. <bean id="customerDao" 
  36.     class="com.wangsy.struts.dao.impl.CustomerDaoImpl"> 
  37.     <property name="jdbcTemplate" ref="jdbcTemplate" /> 
  38. </bean> 

3.配置struts.xml

  代码如下:

  
  
  
  
  1. <package name="test" extends="struts-default"> 
  2.     <action name="list" class="customerBean" method="list"> 
  3.           <result name="list_view">customerList.jsp</result> 
  4.       </action> 
  5.      <action name="add" class="customerBean" method="add"> 
  6.           <result name="list_view">customerList.jsp</result> 
  7.           <result name="input">customerList.jsp</result> 
  8.       </action> 
  9.     <action name="update" class="customerBean" method="update"> 
  10.           <result name="list_view">customerList.jsp</result> 
  11.           <result name="input">customerUpdate.jsp</result> 
  12.       </action> 
  13.        <action name="delete" class="customerBean" method="delete"> 
  14.           <result name="list_view">customerList.jsp</result> 
  15.       </action> 
  16.       <action name="beforeUpdate" class="customerBean" 
  17. method="beforeUpdate"> 
  18.           <result name="update_view">customerUpdate.jsp</result> 
  19.       </action> 
  20. </package> 

  注意:<action name="list" class="customerBean" method="list">

  指定的class是applicationContext.xml声明过的bean的name,即customerBean。

4.实现类代码片段:CustomerAction.java

  
  
  
  
  1. /** 
  2.  *  
  3.  * 功能:验证客户信息 
  4.  * 方法名:validateForm 
  5.  * @param  
  6.  * @return boolean 
  7.  */ 
  8. public boolean validateForm(){ 
  9.     boolean validate = true
  10.     String custName = customer.getCustName(); 
  11.     String address = customer.getAddress(); 
  12.      
  13.     //客户姓名不能为空,且不能超过20个字符 
  14.     if (custName == null || "".equals(custName)){ 
  15.         this.addFieldError("customer.custName", "客户姓名不能为空!"); 
  16.         validate = false
  17.     }else if (custName.length() > 20){ 
  18.         this.addFieldError("customer.custName", "客户姓名不能超过20个字符!"); 
  19.         validate = false
  20.     } 
  21.      
  22.     //客户地址不能为空,且不能超过20个字符 
  23.     if (address == null || "".equals(address)){ 
  24.         this.addFieldError("customer.address", "客户地址不能为空!"); 
  25.         validate = false
  26.     }else if (address.length() > 20){ 
  27.         this.addFieldError("customer.address", "客户地址不能超过20个字符!"); 
  28.         validate = false
  29.     } 
  30.      
  31.     return validate; 
  32.  
  33. /** 
  34.  *  
  35.  * 功能:增加客户信息 
  36.  * 方法名:add 
  37.  * @param  
  38.  * @return String 
  39.  */ 
  40. public String add() throws Exception { 
  41.     if (validateForm()){ 
  42.         service.insertCustomer(customer); 
  43.     } 
  44.     return list(); 

5.页面文件:customerList.jsp和customerUpdate.jsp

   customerUpdate.jsp代码片段如下:

  
  
  
  
  1. <s:form action="update.action" method="post"> 
  2.     <h1> 
  3.         修改客户信息 
  4.     </h1> 
  5.     <br> 
  6.     <s:hidden name="customer.custId" /> 
  7.     <s:textfield name="customer.custName" label="客户姓名" /> 
  8.     <s:textfield name="customer.address" label="客户地址"  /> 
  9.     <s:submit value="修改" /> 
  10. </s:form> 

有源代码下载喔,注意附件。lib下的jar太大省略了,可自行添加,表结构参见上一篇。

你可能感兴趣的:(spring,mvc,struts2,职场,休闲)