我希望在这篇文章中,能够得到人们在JSF页面和后端bean之间最佳实践的意见。
有一件事情我总是无法解决,那就是后端bean的结构。此外,在这方面我从未找到过一篇好的文章。
哪些属性适合放在哪个后端bean中?在什么情况下添加更多属性到一个给定的bean中是合适的,而不是创建一个新的bean并将属性添加到其中?对于简单的应用程序,是否考虑只为整个页面拥有一个单独的后端bean,考虑到将一个bean注入另一个bean所涉及的复杂性?后端bean是否应包含任何实际业务逻辑,还是严格包含数据?
请随意回答这些问题以及可能出现的任何其他问题。
至于如何减少JSF页面和后端bean之间的耦合,我从不允许JSF页面访问任何后端bean属性的属性。例如,我从不允许这样的操作:
<h:outputText value="#{myBean.anObject.anObjectProperty}" />
我总是需要类似这样的东西:
<h:outputText value="#{myBean.theObjectProperty}" />
具有后端Bean值:
public String getTheObjectProperty()
{
return anObject.getAnObjectProperty();
}
当我循环遍历一个集合时,我使用一个包装类来避免深入到数据表中的对象中。通常情况下,这种方法对我来说感觉“正确”。它避免了视图和数据之间的任何耦合。如果我错了,请纠正我。