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.

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