Springmvc Controller接口代碼示例
Spring MVC
Controller控制器,是MVC中的部分C,為什么是部分呢?因為此處的控制器主要負責功能處理部分:
收集、驗證請求參數(shù)并綁定到命令對象;
將命令對象交給業(yè)務對象,由業(yè)務對象處理并返回模型數(shù)據(jù);
返回ModelAndView(Model部分是業(yè)務對象返回的模型數(shù)據(jù),視圖部分為邏輯視圖名)。
1. 繼承該接口 Controller接口,重寫對應方法,或者采用注解Controller,自定義映射文件
@Controller
@RequestMapping("/flight")
public class ControlFlight
/*implements Controller*/
{
}
需要注意的是:
SimpleUrlHandlerMapping決定使用哪一個控制器。
其中對于prexf-servlet-.xml文件中使重定向方式:
1.第一種ModelAndView方式。
<!--基于URL映射器-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="start1.do">ControlFlight</prop>
<prop key="buy.do">ControlFlight</prop>
<prop key="flight.do">ControlFlight</prop>
<prop key="result.do">ControlFlight</prop>
<!--<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>-->
<bean id="ControlFlight" class="com.qunar.flight.control.ControlFlight"/>
<!--ViewResolver映射-->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/flight/"/>
<property name="suffix" value=".jsp"/>
<property name="order" value="1"/>
</bean>
之后進入Controller中進行任務分派:
@RequestMapping(value = "/start.do", method = RequestMethod.GET)
public ModelAndView BuyAirTicket() {
return new ModelAndView("buy");
}
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>
然后和下面的部分代碼實現(xiàn)URL拼接
<!--ViewResolver映射-->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/flight/"/>
<property name="suffix" value=".jsp"/>
<property name="order" value="1"/>
</bean>
還有另一種方法:
就是直接使用這個命令,但是前提條件是,請求URI的前綴(過濾掉.vm,.htm等)和轉發(fā)的一樣,則直接可以使用
<bean id="loginController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
3 繼承AbstractControlle 接口,并實現(xiàn)相應的方法,次方法和Controller相同,但是對于如果想封裝表單請求,可以直接使用CommandController,-->AbstractCommandController(3.0以上版本廢棄)
4. 注解@RequestMapping("/path") -->在類級別上定義注解時,那么再用此方法注解方法method時,那么method下的路徑是與類路徑相對。
@PathVariable 該注釋是用來指明URL路徑里面取參數(shù),這個注解可以多個使用,下面時使用一種的代碼片段
@RequestMapping("/flight/{name}")
public ModelAndView toAdd(@PathVariable("name") String name){
ModelAndView mav = new ModelAndView("buy");
return mav;
}
總結
以上就是本文關于Springmvc Controller接口代碼示例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
SpringMVC接收復雜集合對象(參數(shù))代碼示例
SpringMVC攔截器實現(xiàn)監(jiān)聽session是否過期詳解
SpringMVC開發(fā)restful API之用戶查詢代碼詳解
如有不足之處,歡迎留言指出。
相關文章
Redisson 分布式延時隊列 RedissonDelayedQueue 運行流程
這篇文章主要介紹了Redisson分布式延時隊列 RedissonDelayedQueue運行流程,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
Java socket通信模擬QQ實現(xiàn)多人聊天室
Socket在Java實戰(zhàn)網(wǎng)絡通信編程應用中有非常重要的作用,你想要跟別人聯(lián)系都得通過socket占據(jù)端口來實現(xiàn),掌握Socket技術不僅在聊天應用程序中需要用到(比如QQ什么的都都是用socket來寫的),而且對于學習 Asp.net 也非常有幫助2022-07-07
Java中的上下文加載器ContextClassLoader詳解
這篇文章主要介紹了Java中的上下文加載器ContextClassLoader詳解,ContextClassLoader是通過Thread.currentThread().getContextClassLoader()返回該線程上下文的ClassLoader,需要的朋友可以參考下2023-10-10
多模塊項目引入SpringSecurity后一直報404的解決方案
這篇文章主要介紹了多模塊項目引入SpringSecurity后一直報404的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06

