我正在研究 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 的未来版本,是否会有任何维护问题?有没有更好的办法?感谢您的任何意见。