2011-02-02 3 views
0

Я пытаюсь ввести некоторую логику на страницу jsp struts2. Если List, возвращаемый из переменной сеанса, равен null, я хочу перебрать его. Если он не равен нулю, я хочу использовать список исключений. Ниже мой код, но компилятор жалуется, что их два итератора являются тегами, а всего лишь одним конечным тегом.Struts2 итерация на странице jsp

<% 
      java.util.List eventL = (java.util.List)session.getAttribute("eventList"); 
      if(eventL != null){ 
       System.out.println("SIZE LIST IS "+eventL.size()); 
       %> 
       <s:iterator value="eventL" var="event"> 
       <% 
      } 
      else 
      { 
      %> 
      <s:iterator value="eventList" var="event"> 

      <% } %> 

Также выполняю ли я перебор по списку, возвращаемому переменной сеанса правильно?

Благодаря

+0

Я понятия не имею, как достичь этого в struts2, но я могу хотя бы сказать, что * scriptlets * и taglibs не используют ту же переменную, что и в случае с кодировкой. Есть обходные пути (хаки, на самом деле), но обычной практикой является использование того или другого, а не того и другого. Так как * scriptlets * обескуражены с JSP 2.0 (десять лет назад), лучше пойти только для taglib. Другими словами, избавьтесь от всех этих вещей в JSP. См. Также [Как избежать Java-кода в JSP-файлах?] (Http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files) – BalusC

+0

Хорошо, спасибо за комментарий –

ответ

0

Я просто добавил новые распорки действия и добавил просил переменные сессии в рамках акции. Действие перенаправляется на ту же страницу, но использует переменную сеанса.

0
<s:iterate var="even" value="eventList"> 
    <s:property value="ListProperty1/> 
    <s:property value="ListProperty2/> 
    <s:property value="ListProperty3/> 
</s:iterate>