spring mvc和struts2开发实例1

1. 开发功能概述

    分别使用spring mvc和struts2实现单表的增,删,改、查,并实现验证功能。

2. 数据库设计

    使用mysql数据库,建立test数据库,建立customer表。表结构如下图所示:

 

数据表结构

3. spring mvc实现

   (1)spring.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" 
  19. class="org.springframework.jdbc.core.JdbcTemplate"> 
  20.     <property name="dataSource"> 
  21.         <ref bean="dataSource" /> 
  22.     </property> 
  23. </bean> 
  24.  
  25. <bean id="localeResolver" 
  26. class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver"> 
  27. </bean> 
  28.  
  29. <!-- 参数配置多个处理请 --> 
  30. <bean id="paraMethodResolver"      
  31.  class="org.springframework.web.servlet.mvc.
  32. multiaction.ParameterMethodNameResolver"> 
  33.     <property name="paramName"> 
  34.         <value>action</value> 
  35.     </property> 
  36.     <property name="defaultMethodName"> 
  37.         <value>list</value> 
  38.     </property> 
  39. </bean> 
  40.      
  41. <!--配置控制器的映射--> 
  42. <bean id="urlMapping" 
  43. class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
  44.     <property name="mappings"> 
  45.         <props> 
  46.         <prop key="customer.do">customerAction</prop> 
  47.     </props> 
  48.    </property> 
  49. </bean> 
  50.  
  51. <!--配置视图--> 
  52. <bean id="viewResolver" 
  53. class="org.springframework.web.servlet.
  54. view.InternalResourceViewResolver"> 
  55.     <property name="prefix"> 
  56.         <value>/</value> 
  57.     </property> 
  58.     <property name="suffix"> 
  59.         <value>.jsp</value> 
  60.     </property> 
  61. </bean> 
  62.  
  63. <!--客户处理--> 
  64. <bean id="customerAction" 
  65.         class="com.wangsy.spring.action.CustomerAction"> 
  66.     <property name="insert_view"> 
  67.         <value>customerInsert</value> 
  68.     </property> 
  69.     <property name="list_view"> 
  70.          <value>customerList</value> 
  71.     </property> 
  72.     <property name="update_view"> 
  73.         <value>customerUpdate</value> 
  74.     </property> 
  75.     <property name="service" ref="customerService" /> 
  76.     <property name="methodNameResolver"> 
  77.         <ref bean="paraMethodResolver" /> 
  78.     </property> 
  79. </bean> 
  80.  
  81. <bean id="customerService"        
  82. class="com.wangsy.spring.service.impl.CustomerServiceImpl"> 
  83.     <property name="dao" ref="customerDao" /> 
  84. </bean> 
  85.  
  86. <bean id="customerDao" 
  87.         class="com.wangsy.spring.dao.impl.CustomerDaoImpl"> 
  88.     <property name="jdbcTemplate" ref="jdbcTemplate" /> 
  89. </bean> 

   (2)编写实现类,有CustomerAction、CustomerServiceImpl、CustomerDaoImpl、Customer等。其中CustomerAction继承MultiActionController类,可以实现一个类处理多个请求。部分代码如下:

  
  
  
  
  1. /**  
  2.  *   
  3.  * 功能:验证绑定  
  4.  * 方法名:bindObject  
  5.  * @param   
  6.  * @return BindException  
  7.  */  
  8. protected BindException bindObject(  
  9.         HttpServletRequest  request,    
  10.           Object command, Validator validator)   
  11.           throws Exception {    
  12.       ServletRequestDataBinder binder   
  13.            = createBinder(request, command);    
  14.       binder.bind(request);    
  15.       BindException errors   
  16.         = new BindException(command,    
  17.               getCommandName(command));    
  18.         
  19.       if (validator.supports(command.getClass())) {    
  20.           ValidationUtils.invokeValidator(validator,    
  21.            command, errors);    
  22.       }    
  23.         
  24.       return errors;    
  25.   }    
  26.  
  27. /*   
  28.  * 功能:增加客户信息  
  29.  * 方法名:add  
  30.  * @param   
  31.  * @return ModelAndView  
  32.  */  
  33. public ModelAndView add(HttpServletRequest request,  
  34.         HttpServletResponse response,  
  35.                 Customer command)throws Exception {  
  36.     BindException errorModule   
  37.             = bindObject(request, command,    
  38.             new CustomerValidator());    
  39.     if (errorModule.hasErrors()){  
  40.         Map map = errorModule.getModel();    
  41.         List<Customer> customerList =    
  42.                       service.getAllCustomers();  
  43.         map.put("customerList", customerList);  
  44.         return new ModelAndView  
  45.                      (this.getList_view(),map);  
  46.     }else{  
  47.         service.insertCustomer(command);  
  48.         return list(request,response);  
  49.     }  

    使用Customer类封装请求参数,bindObject实现数据绑定和验证,类似struts1的ActionForm。服务层和数据层代码见附件。

   (3)页面文件:index.jsp、customerList.jsp、customerUpdate.jsp。

   使用<font color="red"><form:errors path="custName" cssClass="fieldError" /></font>显示验证错误信息。

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