我开始在Spring 3(和J2EE)中开始构建Web应用程序。
看看petclinic的例子,我看到程序员创建了很多JSP片段,比如header,includes,footer,然后使用静态包含将它们拼接在一起。无论如何我想要的是我可能有一个基页,如Base.jsp
,并且可以包含这样的内容:
<body>
<jsp:include page="${subpage}"></jsp:include>
</body>
原因是我想要一个主页面,然后能够放入控制器返回的ModelAndView
,在每种情况下显示哪些页面部分(附有数据)。这样可行,但如果找不到${subpage}
,则jsp名称错误或缺失,它不会出错。我想要更多的错误检查...
这是最佳和推荐的方法吗?如果这对我的想法似乎是一个好主意,那么这样做的正确方法是什么?
答案 0 :(得分:2)
您可能希望使用Apache Tiles 2集成来管理JSP文件。 Spring有很好的集成支持Apache Tiles。它还会显示页面中是否存在错误。我在http://krams915.blogspot.com/2010/12/spring-mvc-3-tiles-2-integration.html
上举了一个例子答案 1 :(得分:1)
您的subpage
似乎还有其他引号。摆脱它们。例如:
<c:set var="subpage" value="/jsp/index.jsp" />
如果必须在控制器或servlet中设置它 - 只需使用request.setAttribute("subpage", "/jsp/index.jsp")
答案 2 :(得分:0)
对于错误检查,您可以使用:
<c:catch var="myException">
<c:import url="${subpage}" />
</c:catch>
以后您可以查看:
<c:if test="${myException != null}">
...
</c:if>
答案 3 :(得分:0)
查看Sitemesh(http://www.opensymphony.com/sitemesh)。它是一个基于servlet过滤器的页面布局系统,易于使用。我已经完成了许多使用Spring MVC的项目,并且它运行良好。