>我正在使用Struts 1.3.10开发应用程序
我需要迭代 2 个列表才能在 jsp 中打印结果。需要使用第一个列表迭代从列表 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 标签来获取解决方案,但在网页的源代码中我得到了这个结果:
<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>
我似乎没有阅读豆子信息...知道吗?
学习 JSTL 和 JSP EL,并使用它来代替这些过时的支柱标签:
<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文档说:
注意: - 此标签库中的许多功能也可以在 JavaServer Pages Standard Tag Library (JSTL) 中找到。Apache Struts 组鼓励尽可能使用标准标签而不是 Struts 特定标签。