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
Spring mvc “如何拥有”/&引用;@RequestMapping中的正斜杠?_Spring Mvc_Url Mapping - Fatal编程技术网

Spring mvc “如何拥有”/&引用;@RequestMapping中的正斜杠?

Spring mvc “如何拥有”/&引用;@RequestMapping中的正斜杠?,spring-mvc,url-mapping,Spring Mvc,Url Mapping,我有一个要求,我在@RequestMapping中使用的id接受1234567812345678和abcxyz/abcxy+z$格式的值(基本上是一个自动生成的字符串,其中包含//code>正斜杠) 我尝试了以下三种格式的映射,但都不起作用: @RequestMapping(value=“abc/action/{id:.+[/]*.*.}.{format}”,method=RequestMethod.PUT)--不接受任何内容 @RequestMapping(value=“abc/action/

我有一个要求,我在
@RequestMapping
中使用的id接受
1234567812345678
abcxyz/abcxy+z$
格式的值(基本上是一个自动生成的字符串,其中包含
//code>正斜杠)

我尝试了以下三种格式的映射,但都不起作用:

@RequestMapping(value=“abc/action/{id:.+[/]*.*.}.{format}”,method=RequestMethod.PUT)
--不接受任何内容

@RequestMapping(value=“abc/action/{id:.+}.{format}”,method=RequestMethod.PUT)
--接受除
/

@RequestMapping(value=“abc/action/{id:.*}.{format}”,method=RequestMethod.PUT)
--接受除
/

但是,当我在普通java程序中尝试相同的正则表达式时,它的效果非常好:

package miscellenousTest;
public class RegExTest {
    public static void main(String[] args) {
        String s1 ="9876543298765432";
        String s2 =" abcxyz/abcxy+z$";
        System.out.println(s1.matches(".+[//]*.*"));
        System.out.println(s2.matches(".+[//]*.*"));
    }
}
我已经浏览了以前的一些帖子,但是没有任何东西能给出我想要的确切解决方案


如果有人能在这个问题上提出一些建议/解决方案,那就太好了

在URL中发送数据时不应使用斜杠。在发送之前,您需要对其进行URL编码。然后,它将被解码,然后返回给你


有时,当我遇到这个问题时,我会使用网络安全名称。例如,我有时需要发送像“12345/01”这样的ID。当我以URL的形式通过网络发送它们时,我会说“12345\u 01”,我们称之为网络安全id。然后,当我们需要真正的id时,我们通过替换来转换它。

/
不是反斜杠,而是正斜杠。或者只是斜杠。但最重要的不是反斜杠。你可以编写一个过滤器来对即将到来的请求进行编码。谢谢你的回复。然而,这种编码和解码模式似乎有点麻烦,我不能总是期望客户机使用编码的url调用我的Web服务。还有其他更好的方法吗?正如我在文章中提到的,我确实尝试过使用正则表达式来接受这种数据模式,但没有成功。如果他们不使用编码的url调用,我建议您使用web安全ID和真实ID作为两个独立的概念。无论何时将id交给前端,总是给他们web安全的id(无斜杠),在内部工作时,使用真实的id。但是,我认为要求前端对值进行编码并不过分。他们必须对所有get请求执行此操作,这是一个简单的方法调用。不幸的是,它有点像xml,需要编码。有时,在处理URL时,您只需生活并适应保留字符。