2

我的应用程序使用 Spring MVC(最新版本;3.2.2)创建返回 JSON 的 RESTful API,到目前为止,我根本不需要视图层。但是现在,除了 API 之外,我还需要一个简单的实用程序页面(纯动态 HTML),并且想为此使用 JSP。

我希望请求http://localhost:8080/foo/<id>通过控制器(Java)并最终进入 JSP。应该很简单吧?但我得到 404;在解决视图方面有些事情是不对的。

HTTP ERROR 404
Problem accessing /jsp/foo.jsp. Reason:

    Not Found

控制器

 @RequestMapping(value = "/foo/{id}")
 public String testing(@PathVariable String id, ModelMap model) {
    model.addAttribute("id", id);
    return "foo";
 }

定义控制器和映射请求有效;这个方法被调用就好了。

弹簧配置

<mvc:annotation-driven/>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/jsp/" p:suffix=".jsp"/>

问题可能就在这里。我已经尝试了稍微不同的前缀并将 JSP 放在 下WEB-INF,以及类似<mvc:view-controller path="/*" />但还没有运气的东西。

(我什至需要指定 InternalResourceViewResolver,还是应该使用默认视图解析器来处理这个问题?)

JSP 文件。在src/main/webapp/jsp(项目使用 Maven 约定)下,我显然有 JSP。

这个位置有问题吗?

网页.xml

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

我浏览了Spring MVC 文档,但我的问题可能太琐碎和明显,无法轻松找到帮助。:-P

谁能告诉我我做错了什么?

4

1 回答 1

6

我认为你需要做的是改变

<servlet-mapping>
  <servlet-name>mvc-dispatcher</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>mvc-dispatcher</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

/*如果路径中有另一个文件夹(例如/jsp/foo.jsp. 另一方面/将匹配一切。

于 2013-05-05T10:32:37.257 回答