【问题标题】:Create custom tag for validator in JSF在 JSF 中为验证器创建自定义标签
【发布时间】:2012-01-22 12:00:30
【问题描述】:

我为我的 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

【问题讨论】:

    标签: jsf-2 custom-tag


    【解决方案1】:

    你应该在你的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

    【讨论】:

      【解决方案2】:

      为此需要遵循以下步骤:

      1. 将您的自定义标签写入 xhtml 文件

      2. 创建 taglib.xml 文件并为您的自定义标签 /validator 添加一个条目

        <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. 通过包含标签库来使用您的自定义标签

      【讨论】:

        猜你喜欢
        • 2013-02-04
        • 2011-08-28
        • 2011-09-18
        • 1970-01-01
        • 2011-09-09
        • 1970-01-01
        • 1970-01-01
        • 2014-12-24
        • 2012-04-26
        相关资源
        最近更新 更多