我将JSF组件动态添加到使用带有facelets的JSF 1.2创建的XHTML页面中。只有在单击页面中的特定按钮时,才能执行某些组件所需的验证。 所以我使用代码将所需属性添加为EL表达式:
String requiredExpression = "#{not empty param['form:button']}")
component.setValueExpression("required",
createValueExpression(requiredExpression, String.class));
我已经通过将EL表达式置于页面中某个静态组件的必需属性中来验证EL表达式的工作原理。我还验证了通过调试代码将EL表达式添加到组件中。但它只是在动态组件中不起作用。
答案 0 :(得分:1)
表达式必须评估为boolean
,而不是String
。
替换
createValueExpression(requiredExpression, String.class)
通过
createValueExpression(requiredExpression, boolean.class)