如何检查我的值是null还是空?

时间:2014-06-20 10:47:53

标签: jsp struts2 jsp-tags

在我的JSP代码中,我有以下内容:

<s:iterator value="details" id="cle" status="rowCle">
    <s:iterator value="value" status="row" >
     <tr>
       <s:if test="%{#surname== ''}">
        <td>&nbsp;</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}'>

但没有效果。

我有点失落。有人会有解决方案吗?

谢谢。 乙

3 个答案:

答案 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 />