java - Spring Boot @RequestParam 截断传入的 URL ?'s and #' s

标签 java spring apache spring-mvc spring-boot

我在使用 Spring MVC @PathValue 时遇到了与此类似的问题,但没有任何在线解决方案可以解决此问题。

我目前正在开发一个应用程序,用户将在其中输入 URL,而 @RequestParam 似乎会截断在 ? 和 # 上传入的 URL。

@RequestMapping(value = "/route/path", method = RequestMethod.GET, produces = "application/json")
public Value method(@RequestParam(value="url") String url, HttpServletRequest request) throws Exception {
    //execute code

现在,例如,如果有人传入 localhost:8080/route/path?url= https://css-tricks.com/hash-tag-links-padding/#article-header-id-0 查询将被截断为 url= https://css-tricks.com/hash-tag-links-padding/

同样的事情似乎也发生在“&”上。我已经尝试了无数围绕正则表达式、Bean 配置和覆盖 WebMvcConfigurerAdapter 中的 configurePathMatch 的解决方案。

还有其他人遇到过这个问题吗?如果是这样,您找到解决方法了吗?提前致谢!

最佳答案

使用encodeURIComponent对您的参数 url 进行编码。

关于java - Spring Boot @RequestParam 截断传入的 URL ?'s and #' s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38599572/

相关文章:

spring - 无法在 spring 中将 bean 注入(inject)具有特定名称的 JSF 托管 bean

linux - JVM 中的交换性

ruby-on-rails - 将 apache SSL 反向代理与 Rails 应用程序结合使用

spring - 使用 RabbitMQ stomp 适配器跨不同服务器中的订阅中继消息

htaccess 更改后 WordPress 网站缺少图像

java - 将数组或序列传递给 idl Java Corba 中的函数

JAVA:如何按下一个最接近的值对数组进行排序?

java - 无法将 Hibernate 查询结果列表转换为对象类

java - 将枚举保存在数据库中的方法

java - 将 @Service Autowiring 到第三方库时出现问题