SpringMVC學習 ---- @RequestMapping

SpringMVC學習 ---- @RequestMapping

基於註解配置SpringMVC環境

配置前端控制器

不論是基於xml文件,還是註解,都必須在web.xml文件中配置前端控制器。

 <!--註冊前端控制器-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!--參數配置-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:*.xml</param-value>
        </init-param>

    </servlet>

    <!--將前端控制器映射到/-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
開啓SpringMVC註解,及配置視圖解析器
<context:component-scan base-package="com.github.excellent.controller"/>
    <mvc:annotation-driven/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="suffix" value=".jsp"/>
        <property name="prefix" value="myjsp/"/>
    </bean>

基於註解的配置會默認配置處理器映射器,處理器適配器

編寫Controller
@Controller
public class HelloControler {
      // 決定請求的url
    @RequestMapping(path = "/hehe")
    public ModelAndView hello(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("hello","hello");
        // 必須和對應的jsp名字一致,否則404
        modelAndView.setViewName("hello");
        return modelAndView;
    }
}
  • @Controller,就和在xml文件中配置處理器的作用一樣,將對象交給spring容器管理
  • @RequestMapping(path = “/hehe”) 指定訪問的url

@RequestMapping的常用屬性

  • 路徑相關
	@AliasFor("path")
    String[] value() default {};

    @AliasFor("value")
    String[] path() default {};

這兩個屬性的作用一樣,都是指定訪問的url。

  • 請求方式相關
 RequestMethod[] method() default {};
 public enum RequestMethod {
    GET,
    HEAD,
    POST,
    PUT,
    PATCH,
    DELETE,
    OPTIONS,
    TRACE;

    private RequestMethod() {
    }
}

只有當請求參數一致時,纔可以訪問成功,當參數不匹配時會報405.

  • 請求參數相關
 String[] params() default {};

當只指定參數的名稱時,只需要提交的參數中包含指定的參數名稱即可,當參數值被指定時,要求提交的參數值也必須一致,否則報400.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章