溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Springmvc中實現一個Controller接口

發(fā)布時間:2021-04-08 16:15:57 來源:億速云 閱讀:302 作者:Leah 欄目:編程語言

怎么在Springmvc中實現一個Controller接口?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

Spring MVC

Controller控制器,是MVC中的部分C,為什么是部分呢?因為此處的控制器主要負責功能處理部分:

收集、驗證請求參數并綁定到命令對象;

將命令對象交給業(yè)務對象,由業(yè)務對象處理并返回模型數據;

返回ModelAndView(Model部分是業(yè)務對象返回的模型數據,視圖部分為邏輯視圖名)。

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>

然后和下面的部分代碼實現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 接口,并實現相應的方法,次方法和Controller相同,但是對于如果想封裝表單請求,可以直接使用CommandController,-->AbstractCommandController(3.0以上版本廢棄)

4. 注解@RequestMapping("/path") -->在類級別上定義注解時,那么再用此方法注解方法method時,那么method下的路徑是與類路徑相對。

@PathVariable 該注釋是用來指明URL路徑里面取參數,這個注解可以多個使用,下面時使用一種的代碼片段

@RequestMapping("/flight/{name}")
  public ModelAndView toAdd(@PathVariable("name") String name){

    ModelAndView mav = new ModelAndView("buy");
    return mav;
  }

關于怎么在Springmvc中實現一個Controller接口問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI