Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何在p:autocomplete';是否触发s completeMethod以获取建议?_Jsf_Jsf 2_Primefaces - Fatal编程技术网

Jsf 如何在p:autocomplete';是否触发s completeMethod以获取建议?

Jsf 如何在p:autocomplete';是否触发s completeMethod以获取建议?,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,标题说明了一切 -- 我用的是primefaces的自动完成。每当触发对服务器的查询以获取建议时,我都需要从输入字段提交一些数据 如何操作?只需在其他输入中添加一个keyupajax事件,以便在用户更改其值时发送它。稍后,您将可以使用它来完成: <p:inputText value="#{autoCompleteBean.value}"> <p:ajax event="keyup" /> </p:inputText> <p:autoComple

标题说明了一切

--

我用的是primefaces的自动完成。每当触发对服务器的查询以获取建议时,我都需要从输入字段提交一些数据


如何操作?

只需在其他输入中添加一个
keyup
ajax事件,以便在用户更改其值时发送它。稍后,您将可以使用它来完成:

<p:inputText value="#{autoCompleteBean.value}">
    <p:ajax event="keyup" />
</p:inputText>

<p:autoComplete value="#{val2}"
    completeMethod="#{autoCompleteBean.completeItem}" />


提交的字段值在
completeMethod
中无法访问,这是预期的。我的示例有效,用户输入在completeMethod中可用。你没有告诉我的是,你正在处理一个隐藏的输入(顺便说一句,我不明白你为什么要重新发送你已经在bean中的值,你的bean
@RequestScoped
?)。哦。。。此解决方案是否适用于
h:inputText
,但不适用于
h:inputHidden
?但是为什么?我不明白为什么要重新发送bean中已有的值,您的bean@RequestScope是否已设置?--是的,bean的作用域是请求。我正在从客户端向服务器提交一些数据,这些数据对于为这个自动完成组件准备项目建议非常有用。切换到
@ViewScoped
,并清除隐藏的输入。这种组件在JSF1.x时代被广泛使用,因为缺乏视图范围,并且需要通过它们保持状态。不再是了,你已经有了。我的回答无效吗?谢谢科洛索斯!您的答案确实有效,但我正在寻找解决此问题的其他优雅解决方案(因此,submitted field value被设置为managed bean field,这样我就不需要用
findComponent().getSUbmittedValue
)弄脏我的手)。