SpringMVC中的RequestMapping修饰类注解

版权声明:如需转载、粘贴内容,必须在转载和粘贴文中标明文章内容出至 https://blog.csdn.net/ynzcxx/article/details/77197411

@RequestMapping

该注解除了能修饰方法,还能修饰类。

如上一文章中提到的代码,修改后得到:

package com.yoni.springmvc.handlers;  
  
import org.springframework.stereotype.Controller;  
import org.springframework.web.bind.annotation.RequestMapping;  
@RequestMapping("/helloworld1") 
@Controller  
public class HelloWorld {  
 
    @RequestMapping("/helloworld2")  
    public String hello(){  
        System.out.println("Hello World!");  
        return "success";  
    }  
      
} 
这时访问hello()方法的的URL就变为了..../helloworld1/helloworld2



@RequestMapping除了能请求URL映射请求外,还可以使用请求方法、请求参数、请求头映射请求。

@RequestMapping的value、method、params及heads分别表示请求URL、请求方法、请求参数及请求的印社条件,之间的关系是“与”。

如上一段代码的hello()方法,如果将上面的@RequestMapping改为:@RequestMapping(value="/helloworld2",method=RequestMethod.POST)

那么在页面直接用<a>标签访问..../helloworld1/helloworld2,将会提示405错误,无法用GET的方法访问数据。

这样就只能用POST方法来访问该URL地址,比如在页面建一个表单,添加一个submit按钮来访问。

<form action="helloworld1/helloworld2" method="POST">
    <input type="submit" value="submit"/>
</form>
将方法改为POST后,访问才能成功,该功能比较常用。


参数params请求参数使的用方法,注解改为@RequestMapping(value="/helloworld2",params = {"username","age != 10“} )

表示请求的参数里必须有username和age两个参数,且age不能等于10,否则访问失败。

参数heads请求表头的使用方法,注解改为@RequestMapping(value="/helloworld2",heads= {"Accept-Language=zh-cn,zh;q=0.8“} )

则表示在请求的时候,表头参数Accept-Language一定只能是”zh-cn,zh;q=0.8“,如果不是该属性,将无法访问。

以上两个参数在@RequestMapping注解中使用得比较少,主要是为了更精确的映射请求。


@RequestMapping注解还支持通配符,”?“表示一个字符,

如:@RequestMapping("/hellowworld2/?/helloworld3")表示URL地址为..../helloworld1/helloworld2/a/helloworld3,其中a可以是任意字符,但只能是一个字符。

”*“表示任意个字符,但仅仅只能是一层路径,如/helloworld1/helloworld2/abcde/helloworld3

”**”匹配多层路径,可以是多层路径,如/helloworld1/helloworld2/abcde/abcde/abcde/helloworld3。


猜你喜欢

转载自blog.csdn.net/ynzcxx/article/details/77197411