我将JSF组件动态地添加到使用JSF 1.2和facelets创建的XHTML页面中。只有在单击页面中的特定按钮时,才需要对其中一些组件进行必要的验证。因此,我使用以下代码将所需属性添加为EL表达式:
String requiredExpression = "#{not empty param['form:button']}")
component.setValueExpression("required",
createValueExpression(requiredExpression, String.class));
通过将EL表达式放置在页面中一个静态组件的所需属性中,我已经验证了它是否有效。我还通过调试代码验证了EL表达式是否被添加到组件中。但是它在动态组件中不起作用。
表达式的求值必须是boolean
,而不是String
。
createValueExpression(requiredExpression, String.class)
createValueExpression(requiredExpression, boolean.class)