jsf - 在验证器属性中找不到 EL 函数

标签 jsf el validation

无法使用依赖于动态或重复值的验证器属性找到 El 函数?

Function 'el:min' not found

#{el:min(a + b, c)}
<f:validateLongRange maximum="#{el:min(foo.bar, 10)}"/>

只是打印出该值在验证器中不起作用的地方。

最佳答案

错误信息 Function 'el:min' not found被误导了。
问题从来不是构造,而是潜在的 NullPointerException在嵌套属性上。

由于在一种情况下,该值取决于不同的组件选择,因此它是通过 ajax 更新的,并且默认值为 null。由于默认值为 null,因此引发了此误导性异常。

该值是一个嵌套属性,因此它没有在 el 函数中被捕获

解决方案:默认禁用验证器

<o:validator validatorId="javax.faces.LongRange" maximum="#{el:min(foo.bar, 10)}"
    disabled="#{foo eq null}"/>

关于jsf - 在验证器属性中找不到 EL 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14653812/

相关文章:

javascript - 从 Java 创建 JavaScript 对象数组

jsf - 在 msg 中使用变量属性

javascript - AngularJs 服务器端验证

java - <h :dataTable value=#{myBean. xxx}> : getXxx() get called so many times, 为什么?

java - GlassFish + MySQL + XHTML + Java Beans + UTF-8 问题

jsf - 如何使用用户界面 :repeat in datatable to append columns?

java - Primefaces 3.5 如何使用 dataExporter 导出不可见的 dataTable 行

java - 防止 EL 访问 session 属性

validation - Symfony 2, Doctrine 2 - 如何验证删除子父关系

Vue.js - 使用 Vuelidate url 域应与电子邮件域匹配