私が見る限りs:iterator
、属性を使用していても、常に現在のアイテムを OGNL 値スタックにプッシュしvar
ます。これは、現在のアイテムのすべてのメンバーがループ内で最上位の OGNL 変数になり、アクションのプロパティを潜在的に隠すことを意味します。
<s:property value="owner" /> <%-- From the Action --%>
<s:iterator value="projects" var="project">
<s:property value="#project.owner" /> <%-- From the project, obviously --%>
<s:property value="owner" /> <%-- Ops, also from the project! --%>
</s:iterator>
<%-- (Fun(?) fact: #project.owner is still accessible here) --%>
反復処理するオブジェクト (多くの場合、複数レベルのネスト) には多くのプロパティがあり、その数は後で増える可能性があります。プロパティを誤って非表示にする危険性は非常に現実的であり、さらに悪いことに、プロパティを JavaBeans に追加すると、以前は機能していたページが壊れる可能性があります。
ここで何か不足していますか?Struts 2 + JSP を使用して複雑なオブジェクトをどのように反復処理しますか?