您的位置:首页 > 编程语言 > Java开发

springmvc数据绑定之@PathVariable

2017-03-24 00:00 441 查看
@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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PathVariable mvc注解