在JSF中为验证器创建自定义标记

时间:2012-01-22 12:00:30

标签: jsf-2 custom-tag

我为我的JSF项目创建了一个自定义验证器。我可以这样使用它:

<h:inputText id="inpUsername" value="#{testbean.value}">
    <f:validator validatorId="validators.TestValidator" />
</h:inputText>

我需要为它创建一个自定义标签,所以我可以像这样使用它:

<h:inputText id="inpUsername" value="#{testbean.value}">
    <validators:myValidator />
</h:inputText>

如何为验证器创建自定义标签? 我正在使用Eclipse,JSF 2.0和Glassfish

2 个答案:

答案 0 :(得分:0)

您应该在taglib.xml

中创建标记
<tag>
  <tag-name>myValidator</tag-name>
  <validator>
    <validator-id>validators.TestValidator</validator-id>
  </validator>
</tag>

请参阅http://facelets.java.net/nonav/docs/dev/docbook.html#taglib-create-validator

关于taglib.xml:http://facelets.java.net/nonav/docs/dev/docbook.html#taglib-web

答案 1 :(得分:0)

需要遵循以下步骤:

  1. 将自定义标记写为xhtml文件

  2. 创建taglib.xml文件并为自定义标记/验证程序添加条目

    <facelet-taglib>  
        <namespace>http://anyurl.com/unique</namespace>  
        <tag>  
          <tag-name>myTag</tag-name>  
          <source>tags/com/portal/myTag.xhtml</source>  
        </tag>  
        <tag>
          <tag-name>myValidator</tag-name>
          <validator>
             <validator-id>validators.TestValidator</validator-id>
          </validator>
        </tag
    </facelet-taglib>
    
  3. 在web.xml中注册

     <context-param>
        <param-name>facelets.LIBRARIES</param-name>
        <param-value>/WEB-INF/taglib.xml</param-value>
     </context-param>
    
  4. 通过添加taglib

  5. 来使用自定义标记