日期:2014-05-19  浏览次数:20723 次

关于Struts2标签,判断集合为空时不显示的问题。

<s:iterator value="listTestTotal" id="listTestTotal" status="a"> 
<s:if test="listTestTotal!=null"> 
<tr>
<td height="20" bgcolor="#FFFFFF"><div align="center"><span class="STYLE1"> <s:property value="#a.index+1"/></span> </div></td>
</tr>
</s:if>

<s:if test="listTestTotal==null||listTestTotal.isEmpty()"> 
您查询的记录为空 
</s:if>  
</s:iterator>  


当集合有记录的时候,能显示出内容,但是,当集合为空的时候,

"您查询的记录为空",他就不显示啊,不知道是为什么了。谢谢。

------最佳解决方案--------------------
struts2迭代标签本身就有判断是否为null为null或者size为0的话它就不会迭代里面的内容了
你要判断的话就放在迭代标签外面
------其他解决方案--------------------
把判断放到迭代标签的外面
------其他解决方案--------------------
listTestTotal.isEmpty()"> 
 您查询的记录为空 2
</s:if>  

这个放在 <s:iterator/>
的外面。
------其他解决方案--------------------


<s:iterator value="listTestTotal" id="listTestTotal" status="a">                                                                         
<s:if test="listTestTotal!=null"> 
<tr>                                                                                                                                 
<td height="20" bgcolor="#FFFFFF"><div align="center"><span class="STYLE1"> <s:property value="#a.index+1"/></span> </div></td>
</tr>
</s:if>
<s:else>您查询的记录为空</s:else>  
</s:iterator>  

------其他解决方案--------------------
<s:if?test="listTestTotal==null
------其他解决方案--------------------
listTestTotal.isEmpty()">???

这里句有问题吧,在这里调用isEmpty方法不行的。你可以使用ls上的方法,也可以这样:
listTestTotal[0] == null //用这句来判断List为空。 
------其他解决方案--------------------
<s:if test="listTestTotal==null
------其他解决方案--------------------
引用:
XML/HTML code?



123456789