在EL条件表达式中指定空结果的首选方法是什么?

时间:2011-09-05 16:58:01

标签: jsf-2 el

如果满足某个条件,我经常要为组件声明条件CSS样式类。如果不满足条件,则不应添加样式。我通常这样做(到目前为止工作正常):

<some:tag styleClass="#{someCondition ? 'SomeClass' : null}" />

这样可以,或者null在那里有任何危险的陷阱吗?

1 个答案:

答案 0 :(得分:2)

没有危险的陷阱。 #{null}非常好,因为EL不会向响应发出任何内容(它基本上会计算为空字符串)。

您有时也会看到这种风格:

<some:tag styleClass="#{someCondition ? 'SomeClass' : ''}" />

这是普通Java代码中通常使用的样式,如下所示:

System.out.println(someCondition ? "SomeClass" : "");

在纯Java代码中,将null转换为String会导致"null",而不是"",这可能是不可取的。对于那些不熟悉EL的人来说,上面的风格实际上更加自我记录。否则你会得到像这样的问题吗?不打印“null”然后呢?