springmvc数据绑定之@PathVariable

@PathVariable,获取URL模板变量

测试可接收List,Array,基本数据类型

html代码:

<script type="text/javascript">
$(document).ready(function(){
	var $array = new Array();
	$array.push(0);
	$array.push(1);
	$array.push(2);
	$.ajax({
		url:'${project_name}/springmvc/pathVariable/'+$array+'/'+$array+'/wang/true',
		type:'get',
		success:function(data){
			
		}
	
	});
})
</script>

java代码:

//{phone[]}/{str[]}/{name}/{isSet}可以看成占位符,代替对应的URL模板变量
@RequestMapping("/pathVariable/{phone[]}/{str[]}/{name}/{isSet}")
//@PathVariable的value值可写可不写,写上跟剧value值匹配,不写根据注解后边的属性名匹配
	public void pathVariable(@PathVariable String name, @PathVariable(value = "str[]") List<String> strs,
			@PathVariable(value = "phone[]") String[] phoneValue, @PathVariable(value = "isSet") boolean isSet,
			HttpServletResponse response) throws Exception {
		response.getWriter().write("success");

@PathVariable由PathVariableMethodArgumentResolver进行解析,如下是解析过程,直接获取uriTemplateVariables里边的变量进行赋值操作。 

String URI_TEMPLATE_VARIABLES_ATTRIBUTE = HandlerMapping.class.getName() + ".uriTemplateVariables";	

protected Object resolveName(String name, MethodParameter parameter, NativeWebRequest request) throws Exception {
		Map<String, String> uriTemplateVars =
			(Map<String, String>) request.getAttribute(
					HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, RequestAttributes.SCOPE_REQUEST);
		return (uriTemplateVars != null) ? uriTemplateVars.get(name) : null;
	}

 

转载于:https://my.oschina.net/u/2527296/blog/866088

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值