Jsf 通过bean的函数检查数据,如果函数返回false,则打开一个对话框来决定如何继续
该页面有一个数据输入表单。单击命令按钮,将数据输入数据库 我需要定义一种通过bean函数控制数据的方法,如果该数据已经存在于数据库中(例如:控制该数据的bean函数返回false),则打开一个对话框来选择是覆盖数据还是取消操作(覆盖应始终通过bean方法执行) 我该怎么办?我使用JSF和Primefaces 编辑: 我尝试了RequestContext,但对话框没有出现。对话框如下所示:Jsf 通过bean的函数检查数据,如果函数返回false,则打开一个对话框来决定如何继续,jsf,primefaces,dialog,managed-bean,Jsf,Primefaces,Dialog,Managed Bean,该页面有一个数据输入表单。单击命令按钮,将数据输入数据库 我需要定义一种通过bean函数控制数据的方法,如果该数据已经存在于数据库中(例如:控制该数据的bean函数返回false),则打开一个对话框来选择是覆盖数据还是取消操作(覆盖应始终通过bean方法执行) 我该怎么办?我使用JSF和Primefaces 编辑: 我尝试了RequestContext,但对话框没有出现。对话框如下所示: <p:commandButton id="tasto" value="Insert"
<p:commandButton id="tasto" value="Insert"
action="#{bean.prova()}" update="BankGrid errorbank" ajax="false" />
<p:dialog id="dialog" header="Title" widgetVar="dlg" resizable="false">
<h:panelGrid>
<h:outputLabel value="Wanna do?" />
<p:commandButton id="button" value="YES"
action="#{bean.insertExist()}" ajax="false" />
<p:commandButton value="NO"
action="back.xhtml?faces-redirect=true" />"
</h:panelGrid>
</p:dialog>
怎么了?取决于您提交表单的方式 如果您是通过ajax提交表单,请使用在完成ajax提交时以编程方式执行脚本: 因此,如果
<p:dialog ... widgetVar="fooDialog">
或者,如果您同步提交表单(即出于某种原因使用ajax=“false”
),则使用visible
属性:
<p:dialog ... visible="#{bean.someCondition}">
取决于您提交表单的方式 如果您是通过ajax提交表单,请使用在完成ajax提交时以编程方式执行脚本: 因此,如果
<p:dialog ... widgetVar="fooDialog">
或者,如果您同步提交表单(即出于某种原因使用ajax=“false”
),则使用visible
属性:
<p:dialog ... visible="#{bean.someCondition}">
取决于您提交表单的方式 如果您是通过ajax提交表单,请使用在完成ajax提交时以编程方式执行脚本: 因此,如果
<p:dialog ... widgetVar="fooDialog">
或者,如果您同步提交表单(即出于某种原因使用ajax=“false”
),则使用visible
属性:
<p:dialog ... visible="#{bean.someCondition}">
取决于您提交表单的方式 如果您是通过ajax提交表单,请使用在完成ajax提交时以编程方式执行脚本: 因此,如果
<p:dialog ... widgetVar="fooDialog">
或者,如果您同步提交表单(即出于某种原因使用ajax=“false”
),则使用visible
属性:
<p:dialog ... visible="#{bean.someCondition}">
为此,我需要创建一个导航器?(或者创建faces config.xml)?我试过了,但它不起作用,正如上面所说的,它只在非ajax请求@balusc中起作用:你能在答案中添加这个吗。我试图提出一个小的编辑,但它仍然说答案改为much@balusc:Dank…BillB:请接受这个答案,这样对于其他搜索类似内容的人,很明显有一个有效且正确的答案要做到这一点,我需要创建一个导航器?(或者创建faces config.xml)?我试过了,但它不起作用,正如上面所说的,它只在非ajax请求@balusc中起作用:你能在答案中添加这个吗。我试图提出一个小的编辑,但它仍然说答案改为much@balusc:Dank…BillB:请接受这个答案,这样对于其他搜索类似内容的人,很明显有一个有效且正确的答案要做到这一点,我需要创建一个导航器?(或者创建faces config.xml)?我试过了,但它不起作用,正如上面所说的,它只在非ajax请求@balusc中起作用:你能在答案中添加这个吗。我试图提出一个小的编辑,但它仍然说答案改为much@balusc:Dank…BillB:请接受这个答案,这样对于其他搜索类似内容的人,很明显有一个有效且正确的答案要做到这一点,我需要创建一个导航器?(或者创建faces config.xml)?我试过了,但它不起作用,正如上面所说的,它只在非ajax请求@balusc中起作用:你能在答案中添加这个吗。我试图提出一个小的编辑,但它仍然说答案改为much@balusc:Dank…BillB:请接受这个答案,这样对于其他对类似事情感兴趣的人来说,很明显有一个有效且正确的答案是什么您没有使用ajax,并且希望在完全刷新页面后显示一个对话框。这仅在使用ajax时有效(正如您可以在pf showcase中看到的ij,因为这样的示例是(afaik)在ajax示例组中。切换到使用ajax,它就可以工作了,而不带ajax的标志。谢谢你,以后,请立即发布一篇文章,特别是如果你做的事情与默认设置不同的话。怎么了?:你没有使用ajax,希望在页面完全刷新后显示一个对话框。这只在使用aj时有效ax(如您所见,ij是pf showcase,因为这样的示例是(afaik)在ajax示例组中。切换到使用ajax,它就可以工作了,而不带ajax的标志。谢谢你,以后,请立即发布一篇文章,特别是如果你做的事情与默认设置不同的话。怎么了?:你没有使用ajax,希望在页面完全刷新后显示一个对话框。这只在使用aj时有效ax(如您所见,ij是pf showcase,因为这样的示例是(afaik)在ajax示例组中。切换到使用ajax,它就可以工作了,而不带ajax的标志。谢谢你,以后,请立即发布一篇文章,特别是如果你做的事情与默认设置不同的话。怎么了?:你没有使用ajax,希望在页面完全刷新后显示一个对话框。这只在使用aj时有效ax(正如您可以看到的那样,ij是pf showcase,因为这样的示例在ajax示例组中是(afaik)。因此,切换到使用ajax,它就可以工作了,而不需要使用ajax标志。谢谢您以后,请立即发布一篇文章,特别是如果您所做的事情与默认情况不同的话。