【问题标题】:Spring @PathVariable doesn't workSpring @PathVariable 不起作用
【发布时间】:2012-01-07 11:35:25
【问题描述】:

我是 Spring MVC 的新手。我的问题是 @PathVariable 导致 404 "请求的资源 () 不可用"。

例如,这适用于 URL http://localhost:8080/Spring/list

@RequestMapping(value = "/list")
    public String list() {
        return "WEB-INF/views/list.jsp";
    }

但是对于 url http://localhost:8080/Spring/list/foo,这会返回 404

@RequestMapping(value = "/list/{nameId}")
    public String list(@PathVariable("nameId") String nameId) {
        return "WEB-INF/views/list.jsp";
    }

怎么了?谢谢你的回答

【问题讨论】:

  • 您的容器日志中是否有任何与 spring 相关的错误?
  • 我有 Glassfish 服务器和 Netbeans。在哪里可以看到日志?
  • 我收到了这样的消息 [#|2011-11-27T22:20:05.965+0200|SEVERE|glassfish3.1.1|org.apache.jasper.servlet.JspServlet|_ThreadID=96;_ThreadName=Thread -2;|PWC6117:找不到文件“C%3A%5CUsers%5CYura%5CDocuments%5CNetBeansProjects%5CSpring%5Cbuild%5Cweb%5Clist%5CWEB-INF%5Cviews%5Clist.jsp”|#]
  • 似乎找不到您的 list.jsp。这很奇怪,因为其他映射有效。

标签: java spring spring-mvc


【解决方案1】:

错误消息说明了一切。由于它是一个分层路径,它正在查看/list/WEB-INF/etc...;尝试使用 JSP 的绝对路径来避免该问题。

我想这有点违反直觉。

【讨论】:

  • return "/WEB-INF/views/list.jsp";有帮助,但为什么比第一个示例有效?
  • @zim32 我相信这是因为路径只有单层深度,所以当它解析视图路径时它不会尝试添加前缀。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 2013-11-17
  • 1970-01-01
相关资源
最近更新 更多