JSF中readOnly / edition模式的最佳实践?

时间:2011-07-09 18:57:09

标签: jsf primefaces composite-component

任何人都可以建议一种执行编辑/只读模式的方法吗?我正在使用PF,我已经这样做了:

<composite:interface>
        <composite:attribute name="size"/>
        <composite:attribute name="value"/>
        <composite:attribute name="editable"/>
    </composite:interface>

    <composite:implementation>

        <p:inputText value="#{cc.attrs.value}"  size="#{cc.attrs.size}" rendered="#{cc.attrs.editable}"/>

        <h:outputText value="#{cc.attrs.value}" rendered="#{!cc.attrs.editable}"/>

    </composite:implementation>

根据布尔值显示inputText或outPutText。但显然PF的inputText中存在一个错误,因为我收到了一个targetClass null异常。如果我在组件外使用inputText它可以工作,但我想用comp来封装这种行为。还有其他建议吗?

1 个答案:

答案 0 :(得分:5)

我建议使用disabled属性,如果需要,使用CSS将输入设置为看起来像输出。

E.g。

<p:inputText value="#{bean.value}" disabled="#{!bean.editable}" />

使用CSS

.ui-inputfield[disabled], .ui-inputfield[disabled].ui-state-focus {
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
}