2.RequestMapping映射多个属性

1.映射对应关系

若一个请求为localhost:8080/springMVCProject/Handler/welcome
控制器为:

package person.demo.handler;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("Handler")
public class SpringMVCHandler {
	@RequestMapping(value="welcome" , method =  RequestMethod.POST , params = {"name=zs"})
	public String welcome() {
		return "success";	//默认使用请求转发,地址栏不变
	}
}

此时根据url去匹配控制器的requestMapping值与对应方法的requestMapping值
并非匹配相关控制器的类名
类名与requestMapping值可以不相同

若在web.xml中配置
url-pattern的值为.action,则springmvc只拦截以.action为节为的请求,其余请求可自由配置,例如交由传统servlet进行拦截

<servlet>
    <servlet-name>springDispatherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springDispatherServlet</servlet-name>
    <url-pattern>.action</url-pattern>
  </servlet-mapping>

2.RqeuestMapping的参数

  value–路径解析为Handler/welcome
  method–提交方式为POST
  params–提交的参数中必须有name这个字段且name的字段值为zs,否则不拦截
  age!=23 当字段age的值为23时不拦截,age的值为空或不等于23时 拦截
  !name ,提交的参数不能包含名为name的字段,如果包含则不拦截
  使用ant风格的请求路径
    ?–单字符
    * --任意个字符(0个或多个)
    ** --任意目录
  使用@PathVariable获取动态参数
    在请求地址中使用“/字段值”
    在控制器中:@RequestMapping(value=“welcome6/{动态参数名}”)
          @PathVariable(“动态参数名<与requestMapping中的参数名保持一致>”) String name <将动态参数赋值给String类型的name>
          在方法中可直接使用name来使用传入的参数

	@RequestMapping(value="welcome" , method =  RequestMethod.POST , params = {"name=zs" , "age!=23"} , "!height" )
	@RequestMapping(value="welcome3/*/test")
	@RequestMapping(value="welcome4/a?c/test")
	@RequestMapping(value="welcome5/**/test")

	//获取动态参数
	<a href="Handler/welcome6/zs">springmvc-welcome(6)</a><br>
	@RequestMapping(value="welcome6/{name}")
	public String welcome6(@PathVariable("name") String name) {
		System.out.println(name);
		return "success";	//默认使用请求转发,地址栏不变
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值