我有一个文件Chart.xhtml
如下
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html" >
<cc:interface>
<cc:attribute name="title" />
<cc:attribute name="subTitle" />
<cc:attribute name="yLabel" />
<cc:attribute name="xLabel" />
<cc:attribute name="xMinTickInterval" />
</cc:interface>
<cc:implementation>
<h:outputScript name="javascript/highcharts/js/highcharts.js" target="head" />
<div id="#{cc.id}_chartDiv"/>
<script type="text/javascript">
$(function() {
// Data must be defined WITHIN the function. This prevents
// different charts using the same data variables.
var options = {
credits: {
enabled: false
},
chart: {
renderTo: '#{cc.id}_chartDiv',
zoomType: 'x',
width: 720
//margin: [50, 50, 100, 80]
},
title: {
text: '#{cc.attrs.title}'
},
subtitle: {
text: '#{cc.attrs.subTitle}'
},
xAxis: {
title: {
enabled: true,
text: '#{cc.attrs.xLabel}'
},
minTickInterval: '#{cc.attrs.xMinTickInterval}'
},
yAxis: {
title: {
text: '#{cc.attrs.yLabel}'
}
},
legend: {
enabled: false
}
};
// Don't create the chart if there are no series defined.
if(typeof options.series !== "undefined") {
if(options.series.length > 1) {
options.legend.enabled = true;
}
var chart = new Highcharts.Chart(options);
}
});
</script>
</cc:implementation>
上面的xml
是一个自定义标记,从
<hc:Chart title="New Zealand Nation Ethnic Population Estimates for 2006" xLabel="Age Groups (Years)" yLabel="Percentage of Total Population">
这是包含库声明的文件
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<facelet-taglib version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd">
<namespace>http://nz.co.kevindoran/highcharts-jsf</namespace>
<tag>
<tag-name>Chart</tag-name>
<source>highcharts/Chart.xhtml</source>
</tag>
<tag>
<tag-name>ColumnSeries</tag-name>
<source>highcharts/ColumnSeries.xhtml</source>
</tag>
<tag>
<tag-name>CartesianSeries</tag-name>
<source>highcharts/CartesianSeries.xhtml</source>
</tag>
<tag>
<tag-name>ColumnOptions</tag-name>
<source>highcharts/ColumnOptions.xhtml</source>
</tag>
<tag>
<tag-name>TimeChart</tag-name>
<source>highcharts/TimeChart.xhtml</source>
</tag>
<tag>
<tag-name>TimeSeries</tag-name>
<source>highcharts/TimeSeries.xhtml</source>
</tag>
<tag>
<tag-name>TimeTrendChart</tag-name>
<source>highcharts/TimeTrendChart.xhtml</source>
</tag>
<tag>
<tag-name>Tooltip</tag-name>
<source>highcharts/Tooltip.xhtml</source>
</tag>
<composite-library-name>highcharts</composite-library-name>
错误如下所示/WEB-INF/highcharts/Chart.xhtml @7,19 <cc:interface> Component Not Found for identifier: j_idt8.getParent().
为什么会这样?
您的实体类'Char'是否具有属性'parent'?
看起来你的实体确实有一个属性'Parent',但你没有在"cc:interface"标签中引用它。
尝试在"cc:interface"标签中添加以下内容:
cc:属性名称="父"