Spring MVC
1. 繼承該接口 Controller接口,重寫對應方法,或者采用注解Controller,自定義映射文件
1 @Controller 2 @RequestMapping("/flight") 3 public class ControlFlight /*implements Controller*/ { 4 5 6 }
需要注意的是:
SimpleUrlHandlerMapping 決定使用哪一個控制器。
其中對於prexf-servlet-.xml文件中使重定向方式:
1. 第一種ModelAndView方式。
1 <!--基於URL映射器--> 2 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 3 <property name="mappings"> 4 <props> 5 6 <prop key="start1.do">ControlFlight</prop> 7 <prop key="buy.do">ControlFlight</prop> 8 <prop key="flight.do">ControlFlight</prop> 9 <prop key="result.do">ControlFlight</prop> 10 <!--<prop key="start.do">loginController</prop>--> 11 </props> 12 </property> 13 </bean> 14 15 <!-- <bean id="loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController"> 16 <property name="viewName" value="buy"/> 17 </bean>--> 18 19 <bean id="ControlFlight" class="com.qunar.flight.control.ControlFlight"/> 20 21 22 <!--ViewResolver映射--> 23 <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 24 <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 25 <property name="prefix" value="/WEB-INF/flight/"/> 26 <property name="suffix" value=".jsp"/> 27 <property name="order" value="1"/> 28 </bean>
之后進入Controller中進行任務分派:
1 @RequestMapping(value = "/start.do", method = RequestMethod.GET) 2 public ModelAndView BuyAirTicket() { 3 4 return new ModelAndView("buy"); 5 }
2 第二種采用
<!--基於URL映射器--> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="start.do">loginController</prop> </props> </property> </bean> <bean id="loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController"> <property name="viewName" value="buy"/> </bean>
然后和下面的部分代碼實現URL拼接
1 <!--ViewResolver映射--> 2 <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 3 <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 4 <property name="prefix" value="/WEB-INF/flight/"/> 5 <property name="suffix" value=".jsp"/> 6 <property name="order" value="1"/> 7 </bean>
還有另一種方法:
就是直接使用這個命令,但是前提條件是,請求URI的前綴(過濾掉.vm,.htm等)和轉發的一樣,則直接可以使用
1 <bean id="loginController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
3 繼承AbstractControlle 接口,並實現相應的方法,次方法和Controller相同,但是對於如果想封裝表單請求,可以直接使用CommandController,-->AbstractCommandController(3.0以上版本廢棄)
4. 注解@RequestMapping("/path") -->在類級別上定義注解時,那么再用此方法注解方法method時,那么method下的路徑是與類路徑相對。
@PathVariable 該注釋是用來指明URL路徑里面取參數,這個注解可以多個使用,下面時使用一種的代碼片段
1 @RequestMapping("/flight/{name}") 2 public ModelAndView toAdd(@PathVariable("name") String name){ 3 4 ModelAndView mav = new ModelAndView("buy"); 5 return mav; 6 }