2016-03-02 3 views
1

У меня есть вопрос о включении тегов.Несколько тегов include на JSP

Правильно ли использовать структуру типа?

<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? Или мне нужно отказаться от такой структуры? Все включенные страницы имеют фиксированную структуру, а не динамическую.

+0

Пожалуйста, опубликуйте ошибки компиляции. –

ответ

1

Структура может быть упрощена, но она не решит ваши проблемы с компиляцией.

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

Вместо того, чтобы делегировать эту логику в контроллер (с использованием MVC), чтобы решить, какой вид должен быть возвращен и правильно инициализировать вид.

+0

Почему ненужные изменения в c: import? – BalusC

+0

@BalusC Что в этом плохого? Я предпочитаю c: import через jsp: include. –

+0

Ничего. Это просто лишние изменения и запутывание для начинающих без объяснения причин, лежащих в основе изменений. – BalusC

Смежные вопросы