Spring MVC3 基本配置

之前用过struts2,学习了spring mvc之后,发现还是比struts2方便一些。

首先,web.xml配置

 

[html]  view plain copy
  1. <filter>  
  2.         <filter-name>springUtf8Encoding</filter-name>  
  3.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  4.         <init-param>  
  5.             <param-name>encoding</param-name>  
  6.             <param-value>UTF-8</param-value>  
  7.         </init-param>  
  8.     </filter>  
  9.     <filter-mapping>  
  10.         <filter-name>springUtf8Encoding</filter-name>  
  11.         <url-pattern>/*</url-pattern>  
  12.     </filter-mapping>  
  13.       
  14.     <servlet>  
  15.         <servlet-name>dispatcher</servlet-name>  
  16.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  17.         <load-on-startup>1</load-on-startup>  
  18.     </servlet>  
  19.   
  20.     <servlet-mapping>  
  21.         <servlet-name>dispatcher</servlet-name>  
  22.         <url-pattern>*.do</url-pattern>  
  23.     </servlet-mapping>  
  24.   
  25.     <listener>  
  26.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  27.     </listener>  
  28.     <context-param>  
  29.         <param-name>contextConfigLocation</param-name>  
  30.         <param-value>/WEB-INF/applicationContext.xml</param-value>  
  31.     </context-param>  

 

也可以配置url-pattern为 / ,这需要在spring配置中添加<mvc:resources mapping="/resources/**" location="/resources/"/>,这个据说只在3.05版本之后支持。

然后是spring mvc配置文件:dispatcher-servlet.xml , 这个名称中的 dispatcher要和web.xml中DispatcherServlet的名称相同

 

[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans  
  3.     xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xmlns:p="http://www.springframework.org/schema/p"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
  7.   
  8.     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"   
  9.         p:prefix="/jsp/" p:suffix=".jsp">  
  10.     </bean>  
  11.       
  12. </beans>  


然后是spring主配置文件:

 

启用注解

 

[html]  view plain copy
  1. <context:annotation-config />  
  2.   
  3.     <context:component-scan base-package="com.sivalabs"></context:component-scan>  
  4.       
  5.     <mvc:annotation-driven />  

 

配置place holder,用来读取application configuration

 

[html]  view plain copy
  1. <context:property-placeholder location="/WEB-INF/config.properties"/>  

 

数据源、sessionfactory、事务管理器,其中的

 

[html]  view plain copy
  1. <bean id="dataSource"  
  2.         class="org.springframework.jdbc.datasource.DriverManagerDataSource"  
  3.         p:driverClassName="${jdbc.driverClassName}"   
  4.         p:url="${jdbc.url}"  
  5.         p:username="${jdbc.username}"   
  6.         p:password="${jdbc.password}">  
  7.     </bean>  
  8.       
  9.     <bean id="sessionFactory"  
  10.         class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
  11.         <property name="dataSource" ref="dataSource"></property>  
  12.         <property name="hibernateProperties">  
  13.             <props>  
  14.                 <prop key="hibernate.dialect">${hibernate.dialect}</prop>  
  15.                 <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>  
  16.             </props>  
  17.         </property>  
  18.         <property name="packagesToScan" value="com.sivalabs"></property>  
  19.     </bean>  
  20.     <bean id="transactionManager"  
  21.         class="org.springframework.orm.hibernate3.HibernateTransactionManager"  
  22.         p:sessionFactory-ref="sessionFactory">  
  23.     </bean>  
  24.     <!-- annotate transactional method -->  
  25.     <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>  

配置message,默认放置在classpath

 

 

[html]  view plain copy
  1. <!-- resource message -->  
  2.     <bean id="messageSource"  
  3.         class="org.springframework.context.support.ResourceBundleMessageSource"  
  4.         p:basename="Messages"></bean>  


Cotroller的写法:

 

 

[java]  view plain copy
  1. @Controller  
  2. public class ContactsControllers {  
  3.       
  4.     private ContactsDAO contactsDAO;  
  5.     @Autowired  
  6.     public void setContactsDAO(ContactsDAO contactsDAO) {  
  7.         this.contactsDAO = contactsDAO;  
  8.     }  
  9.   
  10.     @Autowired  
  11.     private ContactFormValidator validator;  
  12.   
  13.     @InitBinder  
  14.     public void initBinder(WebDataBinder binder) {  
  15.         SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");  
  16.         dateFormat.setLenient(false);  
  17.         binder.registerCustomEditor(Date.classnew CustomDateEditor(  
  18.                 dateFormat, true));  
  19.     }  
  20.   
  21.     @RequestMapping("/viewAllContacts")  
  22.     public ModelAndView getAllContacts() {  
  23.         ModelAndView mav = new ModelAndView("showContacts");  
  24.         List contacts = contactsDAO.getAllContacts();  
  25.         mav.addObject("SEARCH_CONTACTS_RESULTS_KEY", contacts);  
  26.         return mav;  
  27.     }  
  28.   
  29.     @RequestMapping(value = "/saveContact", method = RequestMethod.GET)  
  30.     public ModelAndView newuserForm() {  
  31.         ModelAndView mav = new ModelAndView("newContact");  
  32.         Contact contact = new Contact();  
  33.         mav.getModelMap().put("newContact", contact);  
  34.         return mav;  
  35.     }  
  36.   
  37.     @RequestMapping(value = "/saveContact", method = RequestMethod.POST)  
  38.     public String create(@ModelAttribute("newContact") Contact contact,  
  39.             BindingResult result, SessionStatus status) {  
  40.         validator.validate(contact, result);  
  41.         if (result.hasErrors()) {  
  42.             return "newContact";  
  43.         }  
  44.         contactsDAO.save(contact);  
  45.         status.setComplete();  
  46.         return "redirect:viewAllContacts.do";  
  47.     }  
  48.   
  49.     @RequestMapping(value = "/updateContact", method = RequestMethod.GET)  
  50.     public ModelAndView edit(@RequestParam("id") Integer id) {  
  51.         ModelAndView mav = new ModelAndView("editContact");  
  52.         Contact contact = contactsDAO.getById(id);  
  53.         mav.addObject("editContact", contact);  
  54.         return mav;  
  55.     }  
  56. }  



 

[java]  view plain copy
  1. <pre></pre>  
  2. <p></p>  
  3. <pre></pre>  
  4. view中使用spring mvc标签form  
  5. <p></p>  
  6. <p></p>  
  7. <pre name="code" class="html"><form:form action="saveContact.do" method="post" commandName="newContact">  
  8. <!-- form goes here -->  
  9. </form>  
  10. </pre><br>  
  11. <br>  
  12. <p></p>  
  13. <p><br>  
  14. </p>  
  15. <p><br>  
  16. </p>  
  17. <br>  
  18. <pre></pre>  
  19. <pre></pre>  

你可能感兴趣的:(spring mvc)