【发布时间】:2011-09-05 16:58:00
【问题描述】:
如果满足某个条件,我经常想为组件声明条件 CSS 样式类。如果不满足条件,则不应添加样式。我通常这样做(到目前为止效果很好):
<some:tag styleClass="#{someCondition ? 'SomeClass' : null}" />
这样可以吗,或者有null 有任何危险的陷阱吗?
【问题讨论】:
如果满足某个条件,我经常想为组件声明条件 CSS 样式类。如果不满足条件,则不应添加样式。我通常这样做(到目前为止效果很好):
<some:tag styleClass="#{someCondition ? 'SomeClass' : null}" />
这样可以吗,或者有null 有任何危险的陷阱吗?
【问题讨论】:
没有危险的陷阱。 #{null} 非常好,因为 EL 不会向响应发出任何内容(它基本上评估为空字符串)。
你有时也会看到这种风格:
<some:tag styleClass="#{someCondition ? 'SomeClass' : ''}" />
这是普通Java代码中通常使用的样式,如下所示:
System.out.println(someCondition ? "SomeClass" : "");
在纯 Java 代码中,将 null 转换为 String 将导致 "null",而不是 "",这可能是不受欢迎的。对于那些不太熟悉 EL 的人来说,上面的风格实际上是更自我记录的。否则你会得到类似 Doesn't it print "null" then?
【讨论】: