0

私はいくつかの条件でこの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>

この方法で私が望むことを達成できますか?

4

2 に答える 2

1

それはかなり醜く見えます。<c:if>すべての句に使用します。スクリプトレットを使用すると、括弧が閉じていない、セミコロンを忘れているなど、この種の間違いにつながります。

于 2011-10-07T11:55:39.827 に答える
0

非常に緊急の場合を除き、スクリプトレットを使用しないでください。

代わりに<%=currentBackground%>次を使用できます。

  • Java Bean 内の request.setAttribute("currentBackground", yourObject)
  • またはgetter/setter でuseBean

次に、${currentBackground} でExpression Languageを適切に使用して yourObject をフェッチします。

于 2011-10-07T15:15:41.450 に答える