【问题标题】:Struts2 - property tag inside another propertyStruts2 - 另一个属性内的属性标记
【发布时间】:2015-12-09 12:59:08
【问题描述】:

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

<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 中的另一个属性标签中获取属性值?

【问题讨论】:

  • 你想用那个&lt;s:property value="%{&lt;s:property/&gt;}"/&gt;实现什么?
  • @AleksandrM 他有类似Map&lt;String,List&lt;String&gt;&gt; 的东西。我已经编辑了在值和键(在内部迭代中调用)之前添加第一个 var 以使其更清晰。对于&lt;s:property value="%{&lt;s:property/&gt;}"/&gt;,他想要&lt;s:property /&gt;,或&lt;s:property value="top"/&gt;,或&lt;s:property value="#currentElement2"/&gt; 恕我直言

标签: jsp struts2 iterator ognl struts-tags


【解决方案1】:

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

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

还可以考虑将名称更改为 IteratorStatus 实例,以便您可以(如果需要)从 inner 迭代中访问 outer status

<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 list 和对象 value 可能会与应用程序的增长混淆。

【讨论】:

  • 其实我是想在另一个属性标签中使用一个属性值,有没有可能。例如:如果"/>
  • 不,你不能嵌套 struts 标签。
  • 很好,非常感谢您的帮助。
【解决方案2】:
<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>

【讨论】:

  • 这是什么?答案?
  • 不,详细的代码 sn-p 是我实际写的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
  • 1970-01-01
  • 2013-09-01
  • 2011-02-16
  • 2011-05-09
  • 2021-06-07
相关资源
最近更新 更多