【问题标题】:What does ":.+" in `{param:.+}` means (java)?`{param:.+}` 中的 ":.+" 是什么意思(java)?
【发布时间】:2018-05-29 10:17:49
【问题描述】:

{param:.+} 处的:.+ 在这组java 代码中是什么意思?我试过搜索但是我没有找到任何解释。请知道的人给我解释一下。非常感谢。

BatchFileController.java

@RequestMapping("/runbatchfileparam/{param:.+}")  
public ResultFormat runbatchFile(@PathVariable("param") String fileName) 
{  
RunBatchFile rbf = new RunBatchFile();  
return rbf.runBatch(fileName);  
}  

【问题讨论】:

    标签: java spring spring-mvc


    【解决方案1】:

    冒号:是变量名和正则表达式之间的分隔符。

    表达式.+ 表示任何字符中的至少一个。

    【讨论】:

    • 您好,请问您可以添加一些简单的含义示例吗? :)
    • 您好,感谢您的回答,我想提供更多背景信息,以便您帮助我更好地理解这一点。我必须调用的 URL 是http://localhost:8080/runbatchfileparam/test123.bat。如果我只是输入@RequestMapping("/runbatchfileparam/{param},我将无法运行 test123.bat 文件。我必须输入@RequestMapping("/runbatchfileparam/{param:.+} 为什么会这样?
    • @SushaNaidu 那是因为文件名中的.,我猜服务器假设你想访问一个文件。但是通过正则表达式,服务器知道. 字符也是允许的
    • Spring 会截断普通路径变量中的文件扩展名,而不是正则表达式路径变量中的文件扩展名。还有更多信息here
    【解决方案2】:

    如果您的路径变量中包含.,则使用此选项。例如,如果您想将 mongo 中的内部字段作为路径变量传递以从数据库中获取。 (学生地址.id)。默认情况下,忽略第一个点之后的一切。告诉spring框架不要截断:.+

    【讨论】:

      猜你喜欢
      • 2011-12-17
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2021-09-19
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多