2017-05-11 74 views
1

我创建了一个用于xhtml视图的自定义组件,它使用Netbeans8.1和glassfish4.1在JSF 2.1中使用属性值并打印它(如下面的代码中的helloworld)。我通过扩展UIComponentBase重写的家族创建了一个自定义组件,并通过扩展UIComponentELTag覆盖componentType和rendererType方法来对开始和自定义组件标记类进行编码。我为它定义了一个标签库test.taglib.xml,并将其注册到web.xml中。JSF2自定义组件问题

以下是查看代码。

<?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文件)。

我尝试使用自定义组件标记直接或作为用户界面的组成部分,但没有运气。

我在自定义组件中放置了一个断点,并试图进行调试,但控制甚至没有进入断点。

由于控件不会出现断点,所以这意味着我的自定义组件没有被servlet注册?如果是这样,请告诉我我做错了什么。

我是JSF的新手,所以请告诉我,如果我错过任何一点。

我试着与JSF2.2.7相同,但也表现出同样的问题。

回答

0

我找不到根本原因,但解决了我的问题。我使用JSF 2.2.7 jar的代码尝试了相同的代码,但是我使用了注释。 正如问题所述,它没有与2.2.7一起工作,是因为我使用旧时尚代码,如创建taglib并在部署描述符中更新它。