在重置JSF + PrimeFaces中的表单之前,检查一些必需的输入字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在重置JSF + PrimeFaces中的表单之前,检查一些必需的输入字段相关的知识,希望对你有一定的参考价值。
我在实现一个机制来检查JSF表单中的强制输入字段时遇到问题,使用PrimeFaces在提交表单之前由用户填写或不填写。
我在inputTexts中使用了required =“true”机制来检查和触发自定义消息,然后提交用户输入一些值到必填字段,例如:
<p:inputText id="exp" required="true" requiredMessage="#{lang.dailyCurrencyValues_exp_req_txt}" value="#{marketDataDefinitionProcesses.currencyType.explanation}"/>
如果用户成功完成提交并留在同一页面,我的老板要求我重置页面。为了实现这一点,我使用了oncomplete =“document.myForm.reset();”在提交按钮上成功重置表单和表单中的所有字段。
但是,如果用户未输入所有必填字段并按下提交按钮,则表单将给出在requiredMessage中指定的消息,并重置表单及其中的所有元素。如果提交失败,我想阻止这种情况,重置值。我尝试实现一个javascript函数,如果未填充必填字段,则尝试阻止重置表单。但是,我再次遇到有关检索表单中元素值的问题。
<p:calendar id="dateValueId" value="#{marketDataDefinitionProcesses.currencyType.dateValue}" pattern="dd.MM.yyyy" required="true" requiredMessage="#{lang.dailyCurrencyValues_dateValueId_req_txt}"/>
我没有成功通过JavaScript检索日历元素值。
而现在,我正在等待你的意见来解决这个问题。我认为,使用JavaScript或任何JSF / PrimeFaces元素检索日历值的解决方案是检索有关所需=“true”字段是否填充的信息的选项。
此致...
法鲁克
发布后将重定向发送到同一视图。它将创建一个全新的请求,其中所有输入值为空或至少为其在请求/视图范围bean中定义的默认值。
public String submit() {
// ...
return FacesContext.getCurrentInstance().getViewRoot().getViewId() + "?faces-redirect=true";
}
我认为你可以通过PrimeFaces qazxsw poi实现你的目标:
RequestContext
也许你可以尝试这种方式
<h:form id="myForm">
...
</h:form>
@ManagedBean
@RequestScoped
public class MrBean {
public void doSomething() {
// Do your thing
RequestContext context = RequestContext.getCurrentInstance();
context.execute("document.getElementById("myForm").reset()");
}
}
当用户提交数据时,页面需要一个新实例并使用ReuqestContext更新表单或您需要的部分
以上是关于在重置JSF + PrimeFaces中的表单之前,检查一些必需的输入字段的主要内容,如果未能解决你的问题,请参考以下文章
PrimeFaces 4.0/JSF 2.2.x 中的文件上传不适用于 AJAX - javax.servlet.ServletException:请求内容类型不是多部分/表单数据
JSF 2.0 更新 primefaces 对话框第一次不起作用
JSF PrimeFaces overlayPanel 提交值