我必须在按钮点击时显示一个确认对话框。表单有一个在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的情况下编写此内容。
答案 0 :(得分:0)
如果进行Bean Validation验证,则在Process Validations阶段,您的验证将在服务器上执行。如果电子邮件有效,您将进入Invoke Application阶段,您的deleteUser
方法将执行。您可以在支持bean中添加flag
属性,并在输入deleteUser
方法时查看它。如果确实如此,则保存实体,但如果为false,则将其更改为true,不执行保存操作,并让JSF循环再次呈现页面。在页面中,您应该编写一个模态对话框,该对话框在flag
为真时呈现。然后出现对话框,按OK按钮然后,如上所述,实体将保存。因此,解决方案要求您通过JSF对话框更改客户端确认对话框,因为验证是服务器端。