我想使用struts2标记测试非null值。如果我使用以下内容,则此方法有效:
<s:if test="myObject.myField != null">..stuff..</s:if>
如果我错过了非空零件,它似乎也有效,并且只是这样做:
<s:if test="myObject.myField">..stuff..</s:if>
但是,当myField
为String
时,此功能不再有效。我更喜欢第二种形式,因为它更简洁,似乎不像在我的表示层中放置代码。但是我不想使用它,如果它是一个无法记录的功能,它在某种程度上偶然地工作,正如它对字符串不起作用所暗示的那样。
所以我的问题是,在上述测试中是否可以错过"!= null"
?
答案 0 :(得分:0)
使用<s:if test="whatsoever
whatsoever
是一个OGNL表达式,如果您希望标记正常工作,则应该评估为Boolean
值。如果您的字段是boolean
,则输入正常,在其他情况下,它只是不起作用。
此外,在if
tag的文档页面中,类型定义为Boolean
,因此它不是原始boolean
,但值可能是原始boolean
。因此,在评估测试用例时使用不同类型时要小心。