【问题标题】:Struts2 iteration on jsp pagejsp页面上的Struts2迭代
【发布时间】:2011-02-02 21:23:54
【问题描述】:

我试图在我的 jsp struts2 页面中引入一些逻辑。如果从会话变量返回的列表为空,那么我想对其进行迭代。如果它不为空,那么我想使用现有列表。下面是我的代码,但编译器抱怨它们是两个迭代器是标签,但只有一个结束标签。

 <%
            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">

            <% } %>

我是否也正确地遍历了会话变量返回的列表?

谢谢

【问题讨论】:

  • 我不知道如何在 struts2 中实现这一点,但我至少可以看出 scriptlets 和 taglibs 并没有像您期望的那样共享相同的变量范围编码。有一些变通方法(实际上是黑客攻击),但通常的做法是使用其中一个,而不是两者都使用。由于自 JSP 2.0(十年前)以来不鼓励使用 scriptlets,因此最好只使用标记库。换句话说,在 JSP 中摆脱所有那些 &lt;% %&gt; 的东西。另见How to avoid Java code in JSP files?

标签: jsp struts2


【解决方案1】:

我刚刚添加了一个新的 struts 动作并在动作中添加了请求会话变量。该操作重定向到完全相同的页面,但使用了会话变量。

【讨论】:

    【解决方案2】:
    <s:iterate  var="even" value="eventList">
        <s:property value="ListProperty1/>
        <s:property value="ListProperty2/>
        <s:property value="ListProperty3/>
    </s:iterate>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多