В прошлом я использовал множество методов получения и установки, чтобы переместить как можно больше логической логики из файлов фейслета в компоненты поддержки JSF. Таким образом, интерфейс представления был задан методами получения и установки его вспомогательного bean-компонента, а также методами действия вспомогательного bean-компонента. Преимущество этого подхода состоит в том, что файлы фейсов не содержат логики и, следовательно, вся логика находится в поддерживающих bean-компонентах и может быть протестирована на единицу.
Но с EL 2.2 стал возможен другой стиль программирования. В EL 2.2 вы можете вызывать методы с такими выражениями, как
#{bean.collection.size()},
#{bean.collection.add(elem)},
#{bean.property.substring(0, bean.property.indexOf(something))}.
Является ли сейчас хорошим стилем использование довольно сложных выражений, таких как вызов параметризованных методов, или вы не советуете использовать такие выражения? Есть ли практическое правило, когда использовать выражения вызова нового метода, а когда нет?