springMVC中@RequestMapping的使用

先来说下@RequestMapping注解的作用:

该注解的最大作用:完成"请求路径"到"处理该请求方法"之间的映射关系,放在类上方,主要是给类中的方法,定义一个namespace(命名空间)、放在方法上表示请求到达方法的具体位置。

比如:(那么访问路径就是“/sys/login”这样去访问)

@RequestMapping("/sys")
@Controller
public class LoginController {

	private Logger log = Logger.getLogger(this.getClass());

	@RequestMapping(value = "/login")
	public ModelAndView login(HttpServletRequest req, HttpServletResponse res) {
		String loginName = req.getParameter("loginName");
		String password = req.getParameter("password");

		log.info(loginName);
		log.info(password);

		ModelAndView mv = new ModelAndView("/layout/main");
		return mv;

	}
	
	@RequestMapping(value = "/login02")
	public ModelAndView login02(HttpServletRequest req,HttpServletResponse res) {
		String loginName = req.getParameter("loginName");
		String password = req.getParameter("password");

		log.info(loginName);
		log.info(password);

		ModelAndView mv = new ModelAndView("/layout/main");
		return mv;

	}
}

 

关于它的属性

value 属性:

value 属性为必填属性,不可省略,但是value= 这6个字符可以省略。 它的作用:主要是完成"请求路径" 到 "处理该请求"的方法之间的映射关系

它的配置方式:
      @RequestMapping(value=“/users/**”) 匹配“/users/abc/abc”;
     
      @RequestMapping(value="/product?")
      匹配“/product1”或“/producta”,但不匹配“/product”或“/productaa”或“/product/asdf”;
    
      @RequestMapping(value="/product*")
      匹配“/productabc”或“/product”,但不匹配“/productabc/abc”;
   
      @RequestMapping(value="/product/*") 匹配“/product/abc”,但不匹配“/productabc”;
    
      @RequestMapping(value={"/test1", "/create"})匹配"/test1"或"/create"

 

method 属性:

method 该属性可以在后台定义前端页面,采用什么样的HTTP提交方法,如果不满足 将抛出405 Method not allowed 这种错误

 

params 该属性 :  

params 该属性可以在后台定义前端页面,在提交参数数据,需要对按照后台设定的参数条件,传递参数

      @RequestMapping(value="/toLogin",params="flag") 代表请求中必须要有名为flag的提交项
 
      @RequestMapping(value="/toLogin",params="!flag") 代表请求中不能有名为flag的提交项

      @RequestMapping(value="/toLogin",params="flag=hello") 代表请求中必须有名为flag的提交项,且值为hello

      @RequestMapping(value="/toLogin",params="flag!=hello") 代表请求中如果有名为flag的提交项,其值不能为hello
  
      @RequestMapping(value="/toLogin",params={"flag1","flag2=hello"})代表请求中必须有名为flag1的提交项,同时必须有名为flag2的提交项,且flag2的值必须为hello

 

比如下面:就要求提交方式必须是post,且传下来的密码不能为123456,不能有userName的提交项

@RequestMapping(value = "/login", method = { RequestMethod.POST }, params = { "password!=123456", "!userName" })
public ModelAndView login(HttpServletRequest req, HttpServletResponse res) {
	String loginName = req.getParameter("loginName");
	String password = req.getParameter("password");

	log.info(loginName);
	log.info(password);

	ModelAndView mv = new ModelAndView("/layout/main");
	return mv;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值