Jsf 如何检测h:inputText控件的文本输入

Jsf 如何检测h:inputText控件的文本输入,jsf,primefaces,Jsf,Primefaces,我有一个使用Prime Faces 3.3构建的JSF页面,需要能够在用户开始在输入文本字段中键入文本时启用组件。文本字段被实现为一个h:inputText组件——我尝试了各种监听器,例如 valueChangeListener=“#{managedbean.onValueChange}” 但值仅在表单提交后接收,而不是在文本更改时接收。 有没有办法检测到这一点 谢谢这就是你要做的 XHTML页面 <h:form id="form"> <h:panelGrid c

我有一个使用Prime Faces 3.3构建的JSF页面,需要能够在用户开始在输入文本字段中键入文本时启用组件。文本字段被实现为一个h:inputText组件——我尝试了各种监听器,例如

valueChangeListener=“#{managedbean.onValueChange}”

但值仅在表单提交后接收,而不是在文本更改时接收。 有没有办法检测到这一点

谢谢

这就是你要做的

XHTML页面

<h:form id="form">  

    <h:panelGrid columns="2">  


        <p:inputText id="counter">  
            <p:ajax event="keyup" 
                    listener="#{counterBean.increment}"/>  
        </p:inputText>  


    </h:panelGrid>  

</h:form>  

每当您键入某个内容时,它都会调用
increment
方法。

public void onValueChange(ValueChangeEvent事件){UIComponent component=event.getComponent();String clientId=component.getClientId();if(“SelectItemComponent.equals(clientId)//在此处启用另一个组件}if(“TextFieldComponent.equals”)(clientId)){String textFieldValue=(String)event.getNewValue();//在此处启用另一个组件}}很难说你想做什么。在你的问题中发布你的xhtml和java代码。我在页面上有一个输入文本字段-我如何添加一个侦听器,以便当用户输入一些文本时,中间层会立即得到通知,一些代码可以执行。谢谢-这是一个很好的解决方案,对我来说很有效,但它发送的是对服务器的调用太多-是否有任何事件可以捕获以使其更简单?这是您的要求。您希望如何使其更简单?
import java.io.Serializable;  

public class CounterBean implements Serializable{  


    public void increment() {  
        //do something 
    }  
}