在JSF

时间:2015-09-15 09:43:38

标签: jsf jsf-2 jsf-2.2

我必须在按钮点击时显示一个确认对话框。表单有一个在bean中验证的字段。

                     <input type="text"
                        jsf:value="#{bean.userName}"/>                           
                   <button jsf:action="#{bean.deleteUser}"                                 
                        jsf:onclick="return confirm('Are you sure?')">
                        Delete User
                        <f:ajax execute="@form"
                            render="@form"                                        
                            onevent="commonEvent"/>
                    </button>

这个领域是豆子中的嗜好。

@NotEmpty()
@Email
public String getUserName() {
    //getters
}

此处在验证输入字段之前出现确认对话框。有没有办法确认对话框只有在验证成功后才会出现。

是否可以在不更改commonEvent的情况下编写此内容。

1 个答案:

答案 0 :(得分:0)

如果进行Bean Validation验证,则在Process Validations阶段,您的验证将在服务器上执行。如果电子邮件有效,您将进入Invoke Application阶段,您的deleteUser方法将执行。您可以在支持bean中添加flag属性,并在输入deleteUser方法时查看它。如果确实如此,则保存实体,但如果为false,则将其更改为true,不执行保存操作,并让JSF循环再次呈现页面。在页面中,您应该编写一个模态对话框,该对话框在flag为真时呈现。然后出现对话框,按OK按钮然后,如上所述,实体将保存。因此,解决方案要求您通过JSF对话框更改客户端确认对话框,因为验证是服务器端。