0

私はPrimefacesに取り組んでいます。顧客情報を表示する際、特定の顧客の場合、一部のフィールドは機密扱いにする必要があり、XXXXXXXXXX として表示する必要があります。また、特定の顧客の場合、それらのフィールドに値を表示できます。

レンダリングされた値オブジェクトを受け入れる複合コンポーネントを持つことを考えました。顧客に基づいて、静的テキスト「XXXXXXXXXX」を含む outputText と、バッキング Bean 属性にバインドされた値を含む inputText を表示します。

//Composite component code
<composite:interface>
    <composite:attribute name="render" />
    <composite:attribute name="value" />
</composite:interface>
<composite:implementation>
    <h:outputText value=" XXXXXXXXXX " rendered="#{cc.attrs.render}" />
    <p:inputText value="#{cc.attrs.value}" rendered="#{!cc.attrs.render}">
        <f:convertNumber type="currency" />
    </p:inputText>
</composite:implementation>

//Using composite component
<util:input id="accountBalance" render="#{myBean.vipCustomer}" value="#{ myBean.value}" />

//myBean    
public class Account implements Serializable {
    private double value;
    private boolean vipCustomer = false;
// getter's and setter's goes here.....
}

これは安全なアプローチですか?JSF または Primefaces の今後のリリースにより、メンテナンスの問題は発生しますか? より良い方法はありますか?ご意見ありがとうございます。

4

2 に答える 2

0

2 つではなく 1 つのコンポーネントだけでこれを達成しようとすると思います。次のようなものです。<p:inputText value="#{cc.attrs.render ? cc.attrs.value : 'XXXXX'}"> <f:convertNumber type="currency" /> </p:inputText>

Bean で、新しい値を設定する前に「XXXXX」を確認してください。

于 2012-10-17T14:50:46.027 に答える