Struts2:如果测试非空值

时间:2014-03-07 11:19:57

标签: java jsp struts2 ognl

我想使用struts2标记测试非null值。如果我使用以下内容,则此方法有效:

<s:if test="myObject.myField != null">..stuff..</s:if>

如果我错过了非空零件,它似乎也有效,并且只是这样做:

<s:if test="myObject.myField">..stuff..</s:if>

但是,当myFieldString时,此功能不再有效。我更喜欢第二种形式,因为它更简洁,似乎不像在我的表示层中放置代码。但是我不想使用它,如果它是一个无法记录的功能,它在某种程度上偶然地工作,正如它对字符串不起作用所暗示的那样。

所以我的问题是,在上述测试中是否可以错过"!= null"

1 个答案:

答案 0 :(得分:0)

使用<s:if test="whatsoever whatsoever是一个OGNL表达式,如果您希望标记正常工作,则应该评估为Boolean值。如果您的字段是boolean,则输入正常,在其他情况下,它只是不起作用。

此外,在if tag的文档页面中,类型定义为Boolean,因此它不是原始boolean,但值可能是原始boolean。因此,在评估测试用例时使用不同类型时要小心。