Spring MVC:在视图中包含JSP(JSP安装在视图旁边,因此外部控制器无法访问)?

时间:2012-02-27 12:26:34

标签: spring jsp spring-mvc

我创建了一个视图并且它运行良好但我现在需要在页面中包含另一个JSP。

考虑到我的视图安装在WEB-INF / Views的受保护区域中(因此在我的资源目录中没有我的imgs,css可用)

我尝试过使用

   <%@ include file="/views/shared/items/NewItem.jsp" %>

它总是给我FileNotFound,考虑到我的NewItem.jsp与我的其他视图一起安装(即不可通过正常路由访问但由控制器控制)如何包含安装在我旁边的JSP文件图

如果我取出“包含文件”,我的视图会毫无问题地呈现。

我确定我错过了什么?

提前致谢

2 个答案:

答案 0 :(得分:14)

如果NewItem.jsp位于/WEB-INF/views/shared/items/NewItem.jsp,那么在包含它时您必须使用此路径:

<%@ include file="/WEB-INF/views/shared/items/NewItem.jsp" %>

答案 1 :(得分:4)

更好的用户

<jsp:include />

而不是

<%@ include />

并向控制器和控制器发送请求将处理视图

向控制器发送请求

    <jsp:include page="${request.contextPath}/newItem"></jsp:include>

控制器

@RequestMapping(method = RequestMethod.GET, value = "newItem")
public String newItem(Model model) {
    return "shared/items/NewItem";
}