JSF 2.0必需的字段标签装饰器,用于具有@NotNull约束的属性

use*_*510 9 primefaces jsf-2

我有一个JSF 2.0应用程序,它也使用Primefaces 3.3.目前有一个很好的功能,如果相关<p:inputText>使用required="true"属性,标签用星号装饰.

此字段绑定到bean属性,该属性使用@NotNull验证约束进行注释.required="true"当bean属性已经使用@NotNull注释时,似乎多余且容易出错也必须添加XHTML.

是否有一个钩子或某种方法来自动装饰与@NotNull绑定到属性的组件的标签?

任何想法或建议都非常感谢.

kol*_*sus 3

注意:这是一个黑客行为。由于使用内省,它可能会对性能产生影响

  1. 在基本层面上,如果字段用 注释,您需要了解什么@NotNull。在合理的位置执行此检查,例如@PostConstruct视图作用域 bean。声明一个全局变量来确定所需的属性

    boolean  requiredAttribute;        
    
    @PostConstruct
    public void init{ 
    Field theField = this.getClass().getField("theField");
    NotNull theAnnotation = theField.getAnnotation(NotNull.class);
    if(theAnnotation != null){
       requiredAttribute = true;
       }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将属性绑定required到支持 bean 中的变量

    <p:inputText id="inputit" required="#{myBean.requiredAttribute}"/>
    
    Run Code Online (Sandbox Code Playgroud)