如果满足某个条件,我经常要为组件声明条件CSS样式类。如果不满足条件,则不应添加样式。我通常这样做(到目前为止工作正常):
<some:tag styleClass="#{someCondition ? 'SomeClass' : null}" />
这样可以,或者null
在那里有任何危险的陷阱吗?
答案 0 :(得分:2)
没有危险的陷阱。 #{null}
非常好,因为EL不会向响应发出任何内容(它基本上会计算为空字符串)。
您有时也会看到这种风格:
<some:tag styleClass="#{someCondition ? 'SomeClass' : ''}" />
这是普通Java代码中通常使用的样式,如下所示:
System.out.println(someCondition ? "SomeClass" : "");
在纯Java代码中,将null
转换为String
会导致"null"
,而不是""
,这可能是不可取的。对于那些不熟悉EL的人来说,上面的风格实际上更加自我记录。否则你会得到像这样的问题吗?不打印“null”然后呢?