Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC N参数数映射_Java_Spring Mvc_Url Mapping - Fatal编程技术网

Java Spring MVC N参数数映射

Java Spring MVC N参数数映射,java,spring-mvc,url-mapping,Java,Spring Mvc,Url Mapping,我试着在这样的URL中绑定N个参数 /web/appl/<applname>/rule/<rulename>/<attrname1>/<attrval1>/<attrname2>/<attrval2>/.../<attrnameN>/<attrvalN> /web/appl//rule//// 与 @RequestMapping(value=“/web/appl/{applname}/rule/{

我试着在这样的URL中绑定N个参数

/web/appl/<applname>/rule/<rulename>/<attrname1>/<attrval1>/<attrname2>/<attrval2>/.../<attrnameN>/<attrvalN>
/web/appl//rule////

@RequestMapping(value=“/web/appl/{applname}/rule/{rulename}/{attributes}”,method=RequestMethod.GET)
公共对象GetService(HttpServletRequest请求,@PathVariable(“属性”)映射,
@PathVariable(“applname”)字符串applname,@PathVariable(“rulename”)字符串rulename)
抛出异常{
...
}

但是无法获取
//…/

的值,不幸的是,SpringMVC没有提供这样的解决方案。你可以考虑另一种选择。

如果您喜欢坚持当前的URI方案,那么您必须自己实现一个解决方案。一种方法是使用路径模式。例如:

@RequestMapping(value = "/web/appl/{applname}/rule/{rule name}/**")
public Object getService(HttpServletRequest request,
            @PathVariable("applname") String applname ...) {
    String attributesPart = new AntPathMatcher()
        .extractPathWithinPattern("/web/appl/{applname}/rule/{rule name}/**", 
            request.getServletPath());
    ...
你可以实现你的参数解析器来实现它。差不多

@RequestMapping(value = "/web/appl/{applname}/rule/{rule name}/**")
public Object getService(@MyAttributes Map<String, String> attributes,
            @PathVariable("applname") String applname ...) {
@RequestMapping(value=“/web/appl/{applname}/rule/{rule name}/**”)
公共对象getService(@MyAttributes映射属性,
@路径变量(“applname”)字符串applname…){
使用

String urldattributes=(String)request.getAttribute(HandlerMapping.PATH_在_HANDLER_MAPPING_属性中);

然后根据您的需要解析这个URL,就像您没有得到

//…//

按照正确的顺序,然后您可以抛出异常。

看一看:
@RequestMapping(value = "/web/appl/{applname}/rule/{rule name}/**")
public Object getService(@MyAttributes Map<String, String> attributes,
            @PathVariable("applname") String applname ...) {