1

as:iterator のスタックから値をクリアするにはどうすればよいですか?

次のような構造を持つ TreeMultimap を反復処理しようとしています。

TreeMultimap<person, lineItems> persons;

次のようなものを使用します。

<s:iterator value="attendeesForParticipantTypeEvents.asMap()">
  <div>
    <s:property value="key.name" /><br />
    <s:iterator var="currentSku" value="value">
      <s:property value="currentSku.name" /><br />
    </s:iterator>
  </div>
</s:iterator>

これは正常に機能しますが、treeMultimap の lineItems が null の場合を除いて、前の反復から値が取得されます。

したがって、次のような構造です。

persons = {{"Person1",["Line1","line2"]},
           {"Person2",["Line3","line4"]},
           {"Person3",null}}

次のようにレンダリングします。

<div>
   Person1<br />
   Line1<br />
   Line2<br />
</div>
<div>
   Person2<br />
   Line3<br />
   Line4<br />
</div>
<div>
   Person3<br />
   Line3<br />
   Line4<br />
</div>

これは、各イテレータで値がクリアされていないことを示しているようです。値が null である可能性がある場合を処理するにはどうすればよいですか?

ご協力いただきありがとうございます

4

1 に答える 1

1

Struts/JSP に配信する前に、マップを事前にフィルター処理することをお勧めします。関心の分離は、プレゼンテーション層がそのような決定を下すべきではないことを示しています。

Multimap は null 値を持つことはできません (また、すべきではありません)。したがって、あなたの構造は次のようになります。

persons = {{"Person1",["Line1","line2"]},
           {"Person2",["Line3","line4"]},
           {"Person3",[]}}
于 2012-07-03T06:47:30.843 に答える