【问题标题】:Struts2 map iteration in JSP from session来自会话的 JSP 中的 Struts2 映射迭代
【发布时间】:2016-02-28 05:03:27
【问题描述】:

在 JSP 中:

<s:if test="%{#session.cart==null}">
    &nbsp;&nbsp;Your cart is empty.
</s:if>
<s:else>    
<s:set var="cartlist" value="%{#session.cart}"/>

<s:iterator value="#cartlist">
<s:iterator value="value" status="cart">

<s:property value="#cart.pid"/>

</s:iterator>
</s:iterator>
</s:else>

为什么这个else 部分没有迭代。我做错了什么。如果购物车为空,则正确评估 if 条件。如果购物车不为空,则评估 else 部分,但循环未迭代意味着它不显示任何内容。

在行动:

Map<Integer,Cart> map = new HashMap<Integer,Cart>();
map.put(map.size()+1,new Cart(pid,delivery,price,qty));
session.setAttribute("cart",map);

【问题讨论】:

    标签: java jsp struts2 hashmap struts-tags


    【解决方案1】:
    <s:if test="%{#session.cart==null}">
        &nbsp;&nbsp;Your cart is empty.
    </s:if>
    <s:else>    
    <s:set var="cartlist" value="%{#session.cart}"/>
        <!-- following iterator returns Map.Entry of the map-->
        <s:iterator value="%{#carList}">
            <!-- This iterator loops through all the entries of the map -->
            <s:iterator>
                <s:property value="key"/>
                <s:property value="value.pid"/>
            </s:iterator>
        </iterator>
    </s:else>
    

    【讨论】:

      【解决方案2】:

      你把它复杂化了。这就够了:

      <s:if test="%{#session.cart==null}">
          &nbsp;&nbsp;Your cart is empty.
      </s:if>
      <s:else>    
          <s:iterator value="%{#session.cart}">
              <s:property value="key"/>
              <s:property value="value.pid"/>
          </iterator>
      </s:else>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-08
        • 2018-08-31
        • 2010-11-29
        相关资源
        最近更新 更多