Проблема с пользовательским компонентом JSF2
Я создал собственный компонент, который используется в представлении xhtml, и он принимает значение атрибута и печатает его (как helloworld в приведенном ниже коде) в JSF 2.1, используя Netbeans8.1 и glassfish4.1. Я создал пользовательский компонент, расширив семейство переопределенных UIComponentBase, и кодирую начальный и пользовательский класс тегов компонентов, расширив методы переопределения UIComponentELTag для componentType и rendererType. Я определил библиотеку тегов для нее test.taglib.xml и зарегистрировал ее в web.xml.
Ниже приведен код вида.
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:body>
<h2>JSF Custom Input FacesComponent Example</h2>
<h:form>
<ui:composition
xmlns:custom="http://packt.net/cookbook/components"
xmlns:ui="http://java.sun.com/jsf/facelets">
<custom:testInput helloworld="test component!!"/>
</ui:composition>
</h:form>
</h:body>
</html>
Проблема в том, что он отображает только значение html и не отображает значение атрибута пользовательского компонента.
Тот же пример работает, когда я пытался для просмотра JSP (с файлом TLD).
Я пытался использовать пользовательский тег компонента напрямую или как потомок пользовательского интерфейса: состав, но не повезло.
Я поставил точку останова в пользовательском компоненте и попытался отладить, но управление даже не доходило до точки останова.
Так как управление не собирается останавливаться, значит ли это, что мой пользовательский компонент не регистрируется сервлетом? Если это так, пожалуйста, скажите мне, что я делаю не так.
Я новичок в JSF, поэтому, пожалуйста, скажите мне, если я что-то упустил
Я попробовал то же самое с JSF2.2.7, но это также показывает ту же проблему.
1 ответ
Я не могу найти основную причину, но моя проблема решена. Я попробовал тот же код с JSF 2.2.7 jar, но вместо этого я использовал аннотации. Как уже упоминалось в проблеме, она не работала с 2.2.7, потому что я использовал старый модный код, такой как создание taglib и обновление его в дескрипторе развертывания.