How Import A Html Code To Jsf Page?
Solution 1:
This is not HTML code, this is JavaScript code. The JavaScript language has several operators which are special characters in XML (Facelets is a XHTML+XML based view technology), such as <
, >
and &
. They needs to be escaped to <
, >
and &
to prevent the XML parser from literally interpreting them as XML.
for (var i = 0; i < data.length; i++) {
An alternative is to wrap the entire JS code inside a <![CDATA[ ... ]]>
block.
Better, however, is to put that JS code in its own JS file and include it by <h:outputScript>
, e.g.
<h:outputScriptname="global.js" />
See also:
Unrelated to the concrete problem, you're not taking benefit of JSF resource management. I'd suggest to replace
<scripttype="text/javascript"src="../../resources/javascript/highchart/highcharts.js"></script><scripttype="text/javascript"src="../../resources/javascript/highchart/modules/exporting.js"></script>
by
<h:outputScriptname="javascript/highchart/highcharts.js" /><h:outputScriptname="javascript/highchart/modules/exporting.js" />
This way you don't need to fiddle with error prone URI-relative paths.
Update: as per comments, you'd like to pass some Java variables to the script file. You could do that by printing a Java object (which can be a javabean or a Map<String, Object>
) as JSON object as if it is a global JS variable.
<h:outputScript>var data = ${bean.dataAsJson};</h:outputScript>
with e.g. (with help of Gson)
publicStringgetDataAsJson() {
return gson.toJson(someBeanOrSomeMap);
}
(or just create the JSON object already during managed bean's (post)construction)
The script will be able to access it as data.someBeanPropertyOrMapKey
.
Post a Comment for "How Import A Html Code To Jsf Page?"