不同操作JSF的不同验证规则

时间:2012-08-13 13:31:36

标签: validation jsf file-upload tomahawk

我正在尝试实施一个编辑/添加个人资料页面,其中包含以下内容:

  • 带上传按钮的图片上传组件(Tomahawk t:inputFileUpload)
  • 几个输入文本字段
  • 取消并保存按钮

如上所述,此表单用于添加新配置文件以及编辑现有配置文件。起初,我使用了两个元素,一个用于文本输入,一个用于上传组件。这样做的问题是,由于上传组件不支持ajax /部分呈现,因此重新加载整个页面,并且文本输入的任何更改都将丢失。当我使用统一的时,在按下上传按钮时会在文本字段上触发验证,并且在可以上传图像之前,用户必须先填写所有输入。

我希望的行为是,如果textinputs没有改变,我仍然可以在将更改应用到辅助bean并进行验证时上传图片。只有在按下最终提交按钮时才会触发对未更改/空字段的验证。如何才能做到这一点?任何标准场景/最佳实践方法,或者我必须实现valueChange Listener吗?提前谢谢你们,亲切的问候!

1 个答案:

答案 0 :(得分:0)

解决了这个问题,我写了一个自定义验证器并检查了触发表单提交的操作:

 ctx.getExternalContext().getRequestParameterValuesMap().containsKey("form:uploadButton");

其中ctx是FacesContext的当前实例。也许这对某人有帮助,但这是一种解决方法,但是它可以完成这项任务。