表单提交的Ajax验证

时间:2015-10-31 09:08:21

标签: ajax jsf

我使用2.2.12版本在jsf中是新手。 我在执行行动时遇到了一些问题

1)。我得到了一个列表,我需要将该列表显示为自动完成。我做了足够的谷歌,我发现这些东西是针对jsf无法找到一些帮助的素数。

2)。我有多个字段的表单(输入框,密码和复选框)。我需要验证一些表单字段,如密码和符合密码匹配和电子邮件结构等。我能够通过自定义验证器执行验证。现在我的要求是如果表单字段上的验证失败,则不应通过单击表单的提交按钮来提交ajax。表单也是由ajax请求提交的。 以下是我的表格代码。

GPUImageView

请查看以上问题。

1 个答案:

答案 0 :(得分:2)

首先,我不建议将JSF用作带有ajax的前端框架。我们有JSF2.2 + primefaces的项目,我们正在处理很多JSF缺乏。 JSF不是为ajax设计的,当你尝试用它创建单个页面应用程序时,它有越来越多的问题。

如果你必须使用jsf - 你现在必须组件库是你的朋友:)。对于自动填充,您可以使用例如:

你当然可以编写自己的组件,但是你已经在开源库中了 - 我推荐PrimeFaces。

你的第二个问题 最好的方法是在具有属性ajax的primefaces中使用已存在的command button,该属性定义了您的操作是应该由ajax还是通过标准请求调用。

    <p:commandButton value="Non-Ajax Submit" id="nonAjax" actionListener="#{buttonView.buttonAction}" ajax="true" />

如果将ajax设置为true,那么您的操作将由ajax请求执行,如果验证在响应中失败,您将收到验证错误。您还注意到命令按钮具有属性“更新”,该属性应包含在操作进行后应更新的元素列表,例如

<p:commandButton value="Non-Ajax Submit" id="nonAjax" actionListener="#{buttonView.buttonAction}" ajax="true" update="@form"/>

此操作后整个表单将更新