具有不同URL的意外GET值

时间:2015-04-01 09:12:35

标签: java spring spring-mvc

我们的想法是将SMB文件URL或普通网站URL作为GET参数传递给Spring Web MVC控制器。但是正确的输出存在一些问题:

获取值:

正如您所看到的第二个和第四个URL示例不起作用,所以我的问题是:

  • 我该如何处理第二个例子?正确的输出应该是www.google.com。
  • 第四个例子中会发生什么?

设置信息:使用Ubuntu 14.04 LTS x64和Tomcat 8

爪哇

@RequestMapping(value="/document/test/{url}", method=RequestMethod.GET)
public String test(@PathVariable String url, Model model) throws IOException
{
    model.addAttribute("url",  url);
    return "test";
}

HTML

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <p>Value: ${url}</p>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

更改请求映射,如下所示:

@RequestMapping(value="/document/test/{url:.+}", method = RequestMethod.GET)

第4个网址无效,因为您需要对%进行编码。请在下面找到编码的网址:

http://localhost:8080/gradle-spring-mvc-web-project/document/test/%255C%255Csmbserver%255Caccounts%255Ctestaccount%255CWas_muessen_Programme_verarbeiten.docx