在我的JSP代码中,我有以下内容:
<s:iterator value="details" id="cle" status="rowCle">
<s:iterator value="value" status="row" >
<tr>
<s:if test="%{#surname== ''}">
<td> </td>
</s:if>
<s:else>
<td class="reference"><s:property value="%{getText(key.longname.toLowerCase()) }" /></td>
</s:else>
取决于姓氏的值(在我的对象详细信息中是getter的字段,因此它在值堆栈中)我想显示值longname或空白。
我没有问题显示{getText(key.longname.toLowerCase()),我也在我的代码中显示姓氏,所以我唯一关心的是测试姓氏的内容以检查它是否为空或空。
我尝试了几个选项,例如
"%{#surname== ''}">
%{surname== null}'>
'%{#surname== null}'>
但没有效果。
我有点失落。有人会有解决方案吗?
谢谢。 乙
答案 0 :(得分:2)
使用验证更好。因此,这些验证代码将从视图层(JSP)中删除。您可以通过扩展ActionSupport将方法validate()继承到您的操作类。 在此处添加验证代码。如果验证发现任何错误,它将显示在jsp页面文本框上方。
答案 1 :(得分:1)
所以最后我写了代码:
<s:if test="%{ (surname!=null) && (!surname.isEmpty()) }">
并反转if和else的内容,因为测试是相反的。
不需要#
或{....
,因为surname位于值堆栈中,因此可以直接访问。
答案 2 :(得分:0)
“debug”标签是一个非常有用的调试标签,用于输出“价值堆栈”的内容以及网页中的“堆栈上下文”详细信息
如需更多参考,您可以看到此链接Debugging Struts
身体<s:debug />