Struts2 - 属性 标签在另一个 属性 内

Struts2 - property tag inside another property

我有一个遍历 class 对象列表的迭代器。

<s:iterator value="list" status="status" id="id">
    <tr data-id="<s:property value="#status.count"/>" 
             id="<s:property value="#status.count"/>" 
          title="insert">

        <s:iterator value="value" status="status">

            <s:property value="%{<s:property/>}"/>

            <td data-field="<s:property value="key"/>_<s:property/>">
                <s:text name="%{<s:property/>}"/></td>
        </s:iterator>
    </tr>
</s:iterator>

是否可以从 Struts2 中的另一个 属性 标签获取 属性 值?

有几种方法可以做到这一点。

最简单的方法是将当前迭代元素的一个实例压入值堆栈。您正在为第一个带有 id 的迭代器执行此操作(已弃用:应改为使用 var),您需要为第二个迭代器执行此操作。

同时考虑将名称更改为 IteratorStatus 实例,以便您(如果需要)可以从 inner[ 中访问 outer status =26=]迭代。

<s:iterator value="list" status="status1" var="currentElement1">
    <tr data-id="<s:property value="#status1.count"/>" 
             id="<s:property value="#status1.count"/>" 
          title="insert">

        <s:iterator value="#currentElement1.value" status="status2" var="currentElement2">

            <s:property value="%{#currentElement2}"/>

            <td data-field="<s:property value="#currentElement1.key"/>_<s:property/>">
                <s:text name="%{#currentElement2}"/></td>
        </s:iterator>
    </tr>
</s:iterator>

还要考虑使用更有意义的名称...调用列表 list 和对象 value 可能会混淆申请。

<body>    

<div class="main">

<div id="tabs-bottom" class="tabs">


<div class="menu">

    <ul class="ui-tabs-nav">

         <s:iterator value="%{#session.TableColumnMap}" status="liststatus">

         <s:if test="#liststatus.first">

         <li class="activeTab" id=<s:property value="#liststatus.count"/>><a href="#"><s:property value="key"/></a></li>

         </s:if>

         <s:else>

        <li  id=<s:property value="#liststatus.count"/>><a href="#"><s:property value="key"/></a></li>

        </s:else>

         </s:iterator>

    </ul>

    </div><br><br>

    <div class="contents">

    <s:iterator value="%{#session.TableColumnMap}" status="liststatus">

    <s:iterator value="key">    

    <s:if test="#liststatus.first">

    <div class="ui-tabs-panel" id="a<s:property value="#liststatus.count"/>" >

    </s:if>

    <s:else>

    <div class="ui-tabs-panel" id="a<s:property value="#liststatus.count"/>" style="display:none;">

    </s:else>

        <table class="u-full-width demo" id="table<s:property value="#liststatus.count"/>">

        <thead>

            <tr>

            <s:iterator value="value"> 

                <th><s:property/></th>  

            </s:iterator> 

            </tr>

        </thead>

        <tbody id="fin_tbody">

                <s:iterator value="%{#session.acquiredlist}" status="acliststatus" id="acquiredpara">

                  <tr data-id="<s:property value="#liststatus.count"/>" id="<s:property value="#liststatus.count"/>" title="insert">

                <s:iterator value="value" status="liststatus" id="columnvaluevar">

                 <s:property value='%{#columnvaluevar}'/> 

                <s:property value="<s:property/>"/>

                    <td data-field="<s:property value="key"/>_<s:property/>"><input type="text" value=%{<s:property/>}/><s:text name="%{<s:property/>}"/>

</td>

                </s:iterator>

                </tr>

                </s:iterator>

        </tbody>

    </table><br><br>

    </div>

     </s:iterator>

    </s:iterator>


    </div>

</div>

</div>

</body>