【问题标题】:JSF / PrimeFaces: Fill out at least one of X fieldsJSF / PrimeFaces:至少填写一个 X 字段
【发布时间】:2014-11-04 15:21:35
【问题描述】:

我目前正在开发一个动态表单系统,并且必须实现一项功能,用户(设置应从某些预定义字段中显示哪些表单字段)必须能够定义哪些输入字段是必需的,哪些不是。还必须可以设置以下内容:“应显示字段 A 和 B。您需要填写其中至少一个(A 或 B,或者如果您想要 A 和 B)来提交表单。”

我存储了以下数据:

0: not displayed
1: displayed
2: displayed and required (w/o any dependency to another field)
greater than 1: Custom identifier

例子:

name: 1
birthday: 2
city: 2
x: 3
y: 3
postal code: 0

使用该设置,用户必须填写姓名、或者生日城市以及 x 或 y。

JSF 是否支持这种“必填”字段?

问候

【问题讨论】:

标签: java jsf primefaces


【解决方案1】:

从 primefaces 4.0 (http://www.primefaces.org/docs/vdl/4.0/primefaces-p/inputText.html) 的文档中,required 属性接受 javax.el.ValueExpression必须评估java.lang.Boolean

我的理解会导致创建一个返回Boolean 的backbean 函数,并使用您自己的逻辑来确定它是true 还是false(考虑到用户设置和当前元素)。

【讨论】:

  • 我无法确定是否需要某个字段。示例:“应显示字段 A 和 B。您需要填写其中至少一个(A 或 B,或者如果您想要 A 和 B)来提交表单。” - 填写A OR B可以自己选择
【解决方案2】:

不,这种跨字段验证不是开箱即用的。您需要通过自定义验证来实现这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 2013-01-05
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多