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
发送AJAX请求,以在具有操作的commandButton中提交表单_Ajax_Jsf 2 - Fatal编程技术网

发送AJAX请求,以在具有操作的commandButton中提交表单

发送AJAX请求,以在具有操作的commandButton中提交表单,ajax,jsf-2,Ajax,Jsf 2,在我的页面中,我有一个表单,其中的组件从managedBean获取它的值。 然后,页面中有一个按钮: <p:commandButton value="Search" action="#{mbProduct.selectBrand}" ajax="false" immediate="true" /> 这个按钮的作用是,当我单击时,它会将用户重定向到品牌页面,这样他就可以选择产品的品牌并返回到产品页面(与用户单击按钮时的方式完全相同)。 问题是,如果我更改表单中inputText的

在我的页面中,我有一个表单,其中的组件从managedBean获取它的值。 然后,页面中有一个按钮:

<p:commandButton value="Search" action="#{mbProduct.selectBrand}" ajax="false" immediate="true" />

这个按钮的作用是,当我单击时,它会将用户重定向到品牌页面,这样他就可以选择产品的品牌并返回到产品页面(与用户单击按钮时的方式完全相同)。 问题是,如果我更改表单中inputText的任何值,并立即单击“搜索”按钮,则inputText的值不会发送到managedBean,因为在用户单击搜索按钮之前没有ajax请求。 如何避免这种行为并在按钮调用其操作之前设置字段值

---编辑--- 正如Alexandre所建议的,我从按钮中取出了immediate=“true”,但现在我有一个验证错误。 该字段中的具体验证:

<p:selectOneMenu value="#{myMb.selectedItem}">
<f:selectItems value="#{myMb.itemsList}" />
</p:selectOneMenu>


itemsList在myMb构造函数中被延迟初始化,只有当用户不更改selectedValue时才会发生验证错误。如果他更改此值,则不会发生验证错误。

您应该删除
immediate=“true”
,以便在操作之前应用输入


更多信息:

它可以工作,但这样做,组件将被验证。。。有没有一种方法可以避免在组件中进行验证,但同样的方法是尝试应用具有正确值的组件的值?您可以尝试所有不想验证的输入我想我已经开始理解这一点了。。。但是这个代码不起作用。该字段中的特定验证:itemsList在myMb构造函数中延迟初始化,只有当用户不更改selectedValue时,才会发生验证错误。如果他更改了这个值,验证错误就不会发生。是的,我把代码放在了问题中。顺便说一句,谢谢你的帮助。确切的验证错误是什么?日志是否提供了更多信息?确切的验证错误是什么?日志是否提供了更多信息?