0

Struts 1.3.10 を使用してアプリケーションを開発しています

結果をjspで出力するには、2つのリストを繰り返す必要があります。最初のリスト反復は、リスト 2 から要素を選択するために使用する必要があります。そのため、私は次のようにしようとしています。

 <logic:iterate name="bodyForm" property="domainList" id="domList">
     <div><h1><bean:write name="domList" property="domain"/><h1>
          <ul> <logic:iterate name="bodyForm" property="locationsList" id="locList" >
                   <logic:equal name="locList" property="domain" value="<bean:write name="domList" property="domain"/>" >
                       <li><div>....</div></li>
                   <logic:equal>
               </logic:iterate>
           </ul>
     </div>
</logic:iterate>

しかし、「logic:equal」の値内で「bean:write」を呼び出すと、エラーが発生します。あなたはそれを解決する方法を知っていますか?

ご指摘のとおり、解決策を得るために JSTL タグを使用しましたが、Web ページのソース コードでは次の結果が得られました。

    <h1>domList.domain</h1>
        <ul>
          <li class="grey">
             <div>locList.countries.name </div>
             <div>locList.name</div>
             <div>locList.hostname</div>
             <div>locList.ip</div>
          </li>
          <li class="">
             <div>locList.countries.name </div>
             <div>locList.name</div>
             <div>locList.hostname</div>
             <div>locList.ip</div>
          </li>
        </ul>

Bean 情報を読み取っていないようです...何か考えはありますか?

4

1 に答える 1

1

JSTL と JSP EL を学び、これらの廃止された struts タグの代わりに使用してください。

<c:forEach var="domList" items="${bodyForm.domainList}">
    <div>
        <h1><c:out value="${domList.domain}"/><h1>
        <ul> 
            <c:forEach var="locList" items="${bodyForm.locationsList}">
                <c:if test="${locList.domain == domList.domain}">
                    <li><div>....</div></li>
                </c:if>
           </c:forEach>
       </ul>
    </div>
</c:forEach>

AFAIR、JSTLは10年くらい存在します。それ以来、Struts のドキュメントには次のように書かれています。

注: - この taglib の機能の多くは、JavaServer Pages 標準タグ ライブラリ (JSTL) でも利用できます。Apache Struts グループは、可能であれば、Struts 固有のタグよりも標準タグを使用することを推奨しています。

于 2013-02-01T14:51:47.893 に答える