Spring mvc Controller接口


 

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     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM