Создать пользовательский тег для валидатора в JSF - PullRequest
0 голосов
/ 22 января 2012

Я создал специальный валидатор для моего проекта 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 голосов
/ 23 мая 2013

для этого необходимо выполнить следующие шаги:

  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

0 голосов
/ 22 января 2012

Вы должны создать тег в вашем 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

...