预初始化组件的值

时间:2015-10-11 10:51:58

标签: jsf jsf-2 tags

我目前使用定义如下的自定义标记:

<ui:composition>
    <ui:param name="value" value="#{value}" />
    <ui:param name="collection" value="#{collection}" />
    <h:selectOneMenu value="#{value}">
        <f:selectItems value="#{collection}" />
        <f:converter binding="#{myConverter}"/> 
    </h:selectOneMenu>
</ui:composition>

问题是对于所有facelets,#{collection}属性的值将是相同的。因此,我希望避免ManagedBean中的样板代码来检索相同的List<SelectItem>。现在,我倾向于创建ManagedBean ApplicationScopeList<SelectItem>只能在标记中使用(即它的职责是构建sql)。

但我认为这与封装相反。问题是标签的客户不必了解bean。我会将其形成为具有预定义值的自定义组件,但从JSF-standpoint看来,从UIComponent类实现执行List<SelectItem> - 查询似乎不可能和正确(构造{{ 1}}需要执行一些sql - 语句。

最适合的解决方案是什么?

0 个答案:

没有答案