如何清除s: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的情况?
感谢您的帮助
答案 0 :(得分:1)
我建议您在将地图交付给Struts / JSP之前对其进行预过滤。关注点的分离决定了你的表达层不应该做出那样的决定。
我相信Multimap不能(当然不应该)具有空值;所以你的结构很可能是:
persons = {{"Person1",["Line1","line2"]},
{"Person2",["Line3","line4"]},
{"Person3",[]}}