Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Почему мой включенный файл JSP не будет правильно обработан?

Автор вопроса: swdevОтветов: 2

Я пытаюсь (и учусь) создать веб-фреймворк Java и в процессе разработки его генератора кода на основе содержимого базы данных. В процессе создания представления я натыкаюсь на трудность, которую не знаю, как решить.

Во-первых, я хочу, чтобы все страницы были созданы с использованием следующих index.jsp :

<body>
<%@ include file="header.jsp" %>
<hr/>
<%@ include file="body.jsp" %>
<hr/>
<%@ include file="footer.jsp" %>
</body>

И в body.jsp я хочу, чтобы это было так:

  <jsp:include page="${application_modul}" %>

Где application_modul - это атрибут, определенный в его контроллере следующим образом:

request.setAttribute("application_modul","user_account\\view_user_account.jsp");

Он может правильно найти файл, но обработанный jsp не такой, как я ожидал. Здесь :

<c:forEach items="[application.models.UserAccountModel@18a49e0, application.models.UserAccountModel@1f82982]" var="item" varStatus="status" >
<tr>
....

Вы можете увидеть атрибут items jstl forEach, получивший имя переменной (toString())...

Любая идея, в чем проблема????

надеюсь правильно описал свою проблему

Большое спасибо!

PS: я уже создал быстрое исправление для этого, но не то, что я хочу. В сгенерированном view_user_account.jsp я делаю это так:

<body>
<%@ include file="header.jsp" %>
<hr/>
<c:forEach items="${row}" var="item" varStatus="status" >
<tr>
....
<hr/>
<%@ include file="footer.jsp" %>
</body>

Вы можете видеть, что я создаю весь файл здесь...

EDITED: PS: ${row} - это ArrayList, заполненный данными из определенной таблицы

javajspjstl

Ответы

Ответ 1 · рейтинг 3 · BalusC

Итак, чтобы обобщить вашу проблему в одном предложении, теги JSTL не анализируются, и они заканчиваются простым выводом в сгенерированном HTML?

Вам нужно объявить taglib JSTL в верхней части страницы JSP, где вы используете теги JSTL, чтобы заставить их работать. Для базовой библиотеки тегов JSTL , это будет

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Ответ 2 · Nitul

Я не уверен, но попробуйте это...

index.jsp

  <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы