当前位置: 首页 > 知识库问答 >
问题:

带有点(.)的spring MVC@PathVariable正在被截断

水渊
2023-03-14

这是spring MVC@pathvariable被截断问题的继续

spring论坛声明,它已经修复(3.2版本)作为ContentNegotiationManager的一部分。请参阅以下链接。
https://jira.springsource.org/browse/spr-6164
https://jira.springsource.org/browse/spr-7632

在我的应用程序中,requestParameter with.com被截断。

谁能给我解释一下如何使用这个新功能吗?如何在XML中进行配置?

注:spring论坛-#1 spring MVC@PathVariable带点(.)正在被截断

共有3个答案

陈淳
2023-03-14

除了Martin Frey的答案之外,还可以通过在RequestMapping值中添加一个尾随斜杠来修复这个问题:

/path/{variable}/

请记住,此修复程序不支持可维护性。它现在要求所有URI都有一个尾随斜杠--这对于API用户/新开发人员来说可能并不明显。由于可能不是所有参数中都包含.,因此可能还会产生间歇性错误

司马耘豪
2023-03-14

如果您使用的是spring 3.2.x和 ,请创建这个小的BeanPostProcessor:

package spring;

public final class DoNotTruncateMyUrls implements BeanPostProcessor {
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        if (bean instanceof RequestMappingHandlerMapping) {
            ((RequestMappingHandlerMapping)bean).setUseSuffixPatternMatch(false);
        }
        return bean;
    }
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }
}

然后将其放入MVC配置XML中:

<bean class="spring.DoNotTruncateMyUrls" />
夹谷琨
2023-03-14

据我所知,这个问题只出现在RequestMapping末尾的pathvariable。

我们可以通过在RequestMapping中定义regex addon来解决这个问题。

 /somepath/{variable:.+}
 类似资料:
  • 问题内容: 这是问题 Spring MVC @PathVariable被截断的继续 Spring论坛指出,它已作为ContentNegotiationManager的一部分进行了修复(3.2版)。请参阅下面的链接。 https://jira.springsource.org/browse/SPR-6164 https://jira.springsource.org/browse/SPR-7632

  • 问题内容: Spring论坛指出,它已作为ContentNegotiationManager的一部分进行了修复(3.2版)。请参阅下面的链接。 https://jira.springsource.org/browse/SPR-6164 https://jira.springsource.org/browse/SPR-7632 在我的应用程序中,带有.com的requestParameter被截断了

  • 问题内容: 我有一个控制器,可提供对信息的RESTful访问: 我遇到的问题是,如果我使用带有特殊字符的路径变量访问服务器,则会被截断。例如: http:// localhost:8080 / blah-server / blah / get / blah2010.08.19-02:25:47 参数blahName将为blah2010.08 但是,对request.getRequestURI()的

  • 我用下面的代码创建了一个JFreeChart,但是y轴标记被截断了。即使数据点在y轴上重叠,我应该如何显示图表?基本上,我希望Y轴点从我的文件生成,一个适当的范围是填充和显示在图表中。 下面是创建的图像,很明显你可以看到Y轴有一个重叠显示。

  • 我必须在SpringBoot应用程序中使用@PathValiable从URL获取参数。这些参数通常有斜线。我没有一个关于用户将输入URL的控制,所以我想要得到他输入的内容,然后我可以处理它。 我已经看过了这里的资料和答案,我不认为对我来说,好的解决方案是要求用户以某种方式编码输入参数。

  • SpringMVC控制器中@PathVariable有问题。每当我传递包含plus('+')的字符串时,plus就会被空格替换。对参数进行编码没有帮助。 例如,如果我请求url myapp/resend-validation/my+mail@gmail.com,我在变量中得到“mymail@gmail.com”。在请求myapp/resend-validation/my%2bmail@gmail.