gpt4 book ai didi

java - 用 Spring 3 MVC PathParameter 注释的 Controller 参数在最后一个 '.' 之后剥离数据

转载 作者:行者123 更新时间:2023-11-30 05:14:03 25 4
gpt4 key购买 nike

在尝试 Spring MVC 时,我注意到传递给用 @PathVariable 注释的 Controller 参数的值将包含最后一个“.”中的所有字符。除非最后一个字符是“/”,否则将被删除。

例如,给出以下代码:

@RequestMapping("/host/${address})"
public String getHost(@PathVariable String address, Model model) {
model.addAttribute("host", hostRepository.getHost(address));
return "host";
}

如果 URL 为“/host/127.0.0.1”,则 address 的值为“127.0.0”。如果 URL 为“/host/127.0.0.1/”,则 address 的值为“127.0.0.1”。

有办法防止这种剥离吗?

最佳答案

他们的问题跟踪器中已经有很多此类报告(例如 SPR-5778 )。但他们没有修复它,所以这似乎是一种合法的行为。

官方的解决方法是在 DefaultAnnotationHandlerMapping 上设置 useDefaultSuffixPattern = false,但它有几个缺点:

  • 它适用于所有 Controller
  • 它完全禁用扩展处理(例如,对于 ContentNegotiationViewResolver)
  • 它打破了“尾随斜杠无关紧要”的规则

更复杂的解决方法使用自定义的PathMatcher,如here所述。 .

关于java - 用 Spring 3 MVC PathParameter 注释的 Controller 参数在最后一个 '.' 之后剥离数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2300969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com