JSP с использованием JSTL и скриптлетов - PullRequest
0 голосов
/ 07 октября 2011

У меня есть эта страница jsp с некоторыми условиями:

<%      
        if (filterPresent.equals("true") && !selectedFilterCategory.isEmpty()){
%>
        <c:if test="${entry.category eq param.selectedFilterCategory}">
<%
        }
%>
                RENDER A TABLE WITH ITEMS

<%
        if ( filterPresent.equals("true") && !selectedFilterCategory.isEmpty() ) {
%>
        </c:if>
<%
       }
%>

Если значение filterPresent равно true, я хочу, чтобы отображались только некоторые элементы (те, которые соответствуют категории).Если его нет, я хочу отобразить все элементы.

Я получаю ошибку:

An error occurred at line: 48 in the jsp file: /jsp//ejbChildRule.jsp
Syntax error, insert "while ( Expression ) ;" to complete BlockStatements
45: %>
46:             <c:if test="${entry.category eq param.selectedFilterCategory}">
47: <%
48:             }
49: %>
50:                 <tr class="<%=currentBackground%>">
51:                             <td  class="<%=currentBackground%>" align="left" valign="middle" nowrap>

Могу ли я добиться того, чего хочу, таким образом?

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Это выглядит довольно некрасиво.Используйте <c:if> для всех предложений.Использование скриптлетов приводит к такого рода ошибкам - незакрытые скобки, забытые точки с запятой и т. Д.

0 голосов
/ 07 октября 2011

НЕ ДОЛЖНЫ использовать какие-либо сценарии, кроме как при очень срочных обстоятельствах.

Вместо <%=currentBackground%> вы можете использовать:

  • request.setAttribute ("currentBackground", yourObject) внутри ваших Java-бинов
  • или useBean с геттером / сеттером

, затем правильно используйте Язык выражений с $ {currentBackground} для извлечения вашего объекта.

...