標籤:建立 throws extends end 收集 work border prot property
1.前言
上篇部落格著重說了一下SpringMVC中幾種處理映射的方式,這篇部落格來說一下SpringMVC中幾種經常使用的控制器.
2.經常使用控制器
2.1 ParameterizableViewController(參數控制器)
<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "><!-- 設定檔形式要配置的組建:Controller,handlermapping(有預設規則),viewResolver,interceptor --><!-- 視圖解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置從項目根資料夾到一端路徑 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 檔案尾碼名稱 --><property name="suffix" value=".jsp" /></bean><!-- 使用簡單url來映射 --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="/hello1.do">TestController</prop><prop key="/hello1.do">toLogin</prop><prop key="/comm.do">command</prop><prop key="/form.do">form</prop></props></property></bean><!-- 參數控制器,須要配置對應的URL來映射 --><bean id="toLogin"class="org.springframework.web.servlet.mvc.ParameterizableViewController"><!-- 配置你所要跳轉到視圖的名稱 --><!-- 要跳轉的視圖的名稱 --><property name="viewName" value="index"></property></bean></beans></span>
從上述代碼中我們能夠發現,參數控制器跟尋常的控制器差點兒相同,可是不能通過控制器名稱來訪問到,由於參數控制器是唯一的.
2.2 AbstractCommandController(命令控制器)
<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "><!-- 設定檔形式要配置的組建:Controller,handlermapping(有預設規則),viewResolver,interceptor --><!-- 視圖解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置從項目根資料夾到一端路徑 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 檔案尾碼名稱 --><property name="suffix" value=".jsp" /></bean><!-- 使用簡單url來映射 --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="/hello1.do">TestController</prop><prop key="/hello1.do">toLogin</prop><prop key="/comm.do">command</prop><prop key="/form.do">form</prop></props></property></bean><!-- 命令控制器資訊,須要指定簡單的URL來映射 --><bean class="com.url.controller.commController" id="command"><!-- 指定收集對象的類型 --><property name="commandClass" value="com.url.Entity.person"></property></bean></beans></span>
接著來建立控制器資訊,須要繼承AbstractCommandController
<span style="font-size:18px;">package com.url.controller;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.validation.BindException;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.AbstractCommandController;import com.url.Entity.person;public class commController extends AbstractCommandController {//通過命令控制器,每次在訪問的時候,都會建立一個新的Person對象@Overrideprotected ModelAndView handle(HttpServletRequest arg0,HttpServletResponse arg1, Object arg2, BindException arg3)throws Exception { //使用命令控制器來收集資料而且建立指定的對象person person=new person();System.out.println(person);//把背景資料和視圖封裝成ModelAndViewMap<String, Object> map=new HashMap<String, Object>();map.put("person", person);return new ModelAndView("index", map);}}</span>
3.3 FormController(表單控制器)
通過表單控制器,能夠把表單上的資料封裝成為一個對象,在控制器中收集到.
<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "><!-- 設定檔形式要配置的組建:Controller,handlermapping(有預設規則),viewResolver,interceptor --><!-- 視圖解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置從項目根資料夾到一端路徑 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 檔案尾碼名稱 --><property name="suffix" value=".jsp" /></bean><!-- 使用簡單url來映射 --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="/hello1.do">TestController</prop><prop key="/hello1.do">toLogin</prop><prop key="/comm.do">command</prop><prop key="/form.do">form</prop></props></property></bean><!-- 表單控制器,須要指定對應的URL來映射 --><bean class="com.url.controller.FormController" id="form"><!-- 指定收集對象的類型 --><property name="commandClass" value="com.url.Entity.person"></property><!-- 表單頁面 --><property name="formView" value="form"></property><!-- 成功後的跳轉頁面操作 --><property name="successView" value="success"></property></bean></beans></span>
接著建立控制器
<span style="font-size:18px;">package com.url.controller;import org.springframework.web.servlet.mvc.SimpleFormController;import com.url.Entity.person;/*表單控制器*/public class FormController extends SimpleFormController {/*通過此方法來收集表單上的資料,並自己主動封裝成一個對象*/protected void doSubmitAction(Object command) throws Exception {person p=(person)command;System.out.println(p);super.doSubmitAction(command);}}</span>
3.小結
本篇部落格解說了一下SpringMVC中經常使用的控制器,通過控制器能夠與View進行對應的傳值操作.
SpringMVC實戰(三種控制器方式)