我正在使用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>
我似乎不是在读取bean信息…知道吗?
了解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>
航空,JSTL存在大约十年。从那时起,Struts文档说:
注意:-此标签库中的许多功能在JavaServer Pages标准标签库(JSTL)中也可用。Apache Struts组鼓励在可能的情况下使用标准标签,而不是Struts特定标签。