2011-01-24 33 views
6

我开始在Spring 3(和J2EE中)中构建Web应用程序。 看看宠物诊所的例子,我看到程序员创建了很多JSP片段,比如页眉,包含页脚,然后使用静态包含将它们缝合在一起。反正我想的是,我可以有一个基本页面,如Base.jsp并能够包括像这样的事情:Spring文件和动态包含JSP文件

<body> 
<jsp:include page="${subpage}"></jsp:include> 
</body> 

的原因是,我想主要页面,然后能够把在由控制器返回的ModelAndView中,哪些部分页面在每种情况下显示(具有附加的数据)。这可以工作,但是如果没有找到${subpage},那么jsp名称是错误的或丢失的。我想要更多的错误检查...

这是最好的和推荐的方式来做到这一点?如果这对我所想的是一个好主意,那么正确的做法是什么?

回答

1

看起来您在您的subpage中有额外的引号。摆脱他们。例如:

<c:set var="subpage" value="/jsp/index.jsp" /> 

如果你必须将其设置在控制器或servlet - 只需使用request.setAttribute("subpage", "/jsp/index.jsp")

+0

不可能,子页面在控制器类中更改。现在可以从JSP中设置它。 – gotch4 2011-01-24 11:23:28

0

错误检查可以使用:

<c:catch var="myException"> 
    <c:import url="${subpage}" /> 
</c:catch> 

,以后你可以用检查:

<c:if test="${myException != null}"> 
... 
</c:if> 
0

看看Sitemesh(http://www.opensymphony.com/sitemesh)。它是一个易于使用的基于servlet过滤器的页面布局系统。我已经完成了许多使用Spring MVC的项目,并且它工作得非常好。