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