JSF使用Ajax将表单提交到CommandButton

时间:2017-08-23 17:21:44

标签: ajax jsf primefaces commandbutton

https://www.primefaces.org/showcase/ui/ajax/event.xhtml

我想在展示中做同样的事情,但没有刷新页面。例如:在inputtext中设置值并单击按钮查看结果,但如果我有<p:ajax event="blur" /><p:ajax/>,那么我必须在按钮上单击两次

 <p:inputText id="data" value="#{buttonView.data}">
   <p:ajax/>
 </p:inputText>


<p:commandButton value="Ajax Submit" id="ajax"  actionListener="#{buttonView.buttonAction}" />

也许类似于使用outpupanel并在命令按钮中更新该面板?

3 个答案:

答案 0 :(得分:0)

如果您要使用<p:commandButton />,则会提交表单。在这种情况下,使用update的{​​{1}}属性来更新目标组件。

如果要在键入后立即更新其他组件,请使用<p:commandButton />更新目标组件。 (你的事件可以是键盘,按键,变化,模糊等)。

答案 1 :(得分:0)

我不明白为什么要将使用p:ajax的概念与p:commandButton的功能混合使用。

  

基本上,p:ajax的使用旨在部分处理   field(s)value并更新form的组件,即使没有   提交它。

示例: 您可以在屏幕上显示国家/地区(预先填充)(包括注册)以及其他一些字段,但如果用户更改了国家/地区,则需要重新填写“州”下拉列表并更新屏幕异步。在那里你需要使用p:ajax

  

另一方面,p:commandButton旨在提交form   (最初不更新组件)。但是,它也支持   使用update属性更新组件。

示例: 现在,重新考虑具有类似下拉列表的上述示例(但是使用固定值禁用)。现在您知道您的屏幕无需更新,您只需要处理验证(如果有)并提交表格(如果需要,可以更新)。

至于您关注使用p:ajax上的p:inputText对屏幕上的某些异步更新以及p:commandButton最终提交form,这完全取决于在你的要求。

答案 2 :(得分:-2)

相反p:ajax尝试f:ajax。你可以使用&lt; f:ajax event =“change”render =“@ this”/&gt; 一旦值发生变化,同样会反映在支持bean中。