JSF,如何从Managed Bean </h:input>获取<h:input>的Id

时间:2014-08-06 14:29:14

标签: java jsf java-ee primefaces richfaces

我在XHTML页面中有这段代码:

<p:cellEditor>
    <f:facet name="output">
        <h:outputText value="#{complaint.description}" />
    </f:facet>
    <f:facet name="input">
        <p:inputText id="thisInput" value="#{complaint.description}" style="width:96%"/>
    </f:facet>
</p:cellEditor>

我如何获得id&#34;这个输入&#34;的值?在托管Bean?

1 个答案:

答案 0 :(得分:0)

您可以使用binding属性将组件绑定到托管bean(假设component是您希望绑定组件的托管bean):

<p:inputText id="thisInput" 
             value="#{complaint.description}" 
             style="width:96%"
             binding="#{complaint.inputText}" />

在托管bean中,你必须有一个成员和访问器方法(getter和setter):

private InputText inputText;

//+ accessors

最后,为了在托管bean中获取组件的id,您可以调用UIComponent#getClientId()方法。例如:

String id = inputText.getClientId(); 

附注:将组件绑定到托管bean作为一种实践,应该避免,除非没有非常具体的原因需要组件绑定。