【发布时间】:2023-03-09 19:54:01
【问题描述】:
在我的页面中,我有一个表单,它的组件从 managedBean 中获取它的值。 然后,页面中有这个按钮:
<p:commandButton value="Search" action="#{mbProduct.selectBrand}" ajax="false" immediate="true" />
此按钮的作用是,当我单击时,它将用户重定向到品牌页面,因此他可以选择产品的品牌并返回产品页面(与用户单击按钮时完全相同)。 问题是,如果我更改表单中 inputTexts 的任何值,并立即单击“搜索”按钮,则 inputText 的值不会发送到 managedBean,因为在用户单击之前没有 ajax 请求来执行它搜索按钮。 我怎样才能避免这种行为并在按钮调用他的操作之前设置字段值?
---编辑--- 正如 Alexandre 所建议的,我从按钮中取出了 immediate="true",但现在我遇到了验证错误。 它在该字段中的具体验证:
<p:selectOneMenu value="#{myMb.selectedItem}">
<f:selectItems value="#{myMb.itemsList}" />
</p:selectOneMenu>
itemsList 在 myMb 构造函数中被延迟初始化,只有当用户不更改 selectedValue 时才会出现验证错误。如果他更改此值,则不会发生验证错误。
【问题讨论】:
-
确切的验证错误是什么?日志是否提供更多信息?