【发布时间】:2013-12-29 02:24:20
【问题描述】:
过去,我使用了很多 getter 和 setter 方法来将尽可能多的布尔逻辑从 facelet 文件移动到 JSF 支持 bean。 这样,视图的接口由其支持 bean 的 getter 和 setter 方法以及支持 bean 的操作方法提供。 这种方法的一个优点是 facelet 文件是相当无逻辑的,因此,所有逻辑都在支持 bean 中并且可以进行单元测试。
但是在 EL 2.2 中,另一种编程风格成为可能。在 EL 2.2 中,您可以使用如下表达式调用方法
#{bean.collection.size()},
#{bean.collection.add(elem)},
#{bean.property.substring(0, bean.property.indexOf(something))}.
现在使用参数化方法调用等相当复杂的表达式是一种好的风格,还是建议不要使用这样的表达式? 是否有经验法则何时使用新方法调用表达式,何时不使用?
【问题讨论】: