JSP上有多个包含标记

时间:2016-03-02 16:45:29

标签: jsp jstl jspinclude

我对包含标签有一些疑问。

使用像?

这样的结构是否正确
<c:choose>
    <c:when test="${info == 'view_users'}">
        <jsp:include page="/WEB-INF/jsp/admin/view_users.jsp" />
    </c:when>
    <c:when test="${info == 'view_products'}">
        <jsp:include page="/WEB-INF/jsp/admin/view_products.jsp" />
    </c:when>
    <c:when test="${info == 'edit_product'}">
        <jsp:include page="/WEB-INF/jsp/admin/edit_product.jsp" />
    </c:when>
    <c:when test="${info == 'view_categories'}">
        <jsp:include page="/WEB-INF/jsp/admin/view_categories.jsp" />
    </c:when>
</c:choose>

有时我会遇到例外"JasperException: Unable to compile class for JSP"。如果我使用<%@ include文件标签,我的问题是否会得到解决?或者我是否需要放弃这样的结构?所有包含的页面都有固定的结构,而不是动态

1 个答案:

答案 0 :(得分:1)

结构可以简化,但不会解决您的编译问题。

<c:import url="/WEB-INF/jsp/admin/${info}.jsp" /> 

而是将此逻辑委托给控制器(使用MVC)来决定应返回哪个视图并正确初始化视图。