Jon*_*nik 2 spring jsp spring-mvc java-ee
我的应用程序使用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
Run Code Online (Sandbox Code Playgroud)
控制器:
@RequestMapping(value = "/foo/{id}")
public String testing(@PathVariable String id, ModelMap model) {
model.addAttribute("id", id);
return "foo";
}
Run Code Online (Sandbox Code Playgroud)
定义控制器和映射请求有效; 这个方法被调用就好了.
Spring配置:
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/jsp/" p:suffix=".jsp"/>
Run Code Online (Sandbox Code Playgroud)
问题可能在这里.我尝试了稍微不同的前缀并将JSP放在下面WEB-INF,以及类似<mvc:view-controller path="/*" />但没有运气的东西.
(我是否需要指定InternalResourceViewResolver,或者默认视图解析器应该处理这个?)
JSP文件.在src/main/webapp/jsp(该项目使用Maven约定)下,我显然有JSP.

这个位置有问题吗?
web.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>
Run Code Online (Sandbox Code Playgroud)
我浏览过Spring MVC文档,但是我的问题可能太简单了,很容易在那里找到帮助.:-P
谁能让我知道我做错了什么?
我认为你需要做的就是改变
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
至
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
/*如果路径中有另一个文件夹,则不匹配/jsp/foo.jsp.另一方面,/将匹配一切.
| 归档时间: |
|
| 查看次数: |
3136 次 |
| 最近记录: |