Problem trying to do an "include" in JSF
I'm trying to include a chunk of static html in all of my pages. I tried the code below and it didn't work. I've also tried a few other ways and can't get it to work. I was reading abo开发者_开发百科ut somehow using ui tags, but I couldn't get that to work either. What do I need to do to include a page with JSF.
<?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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:head>
...
</h:head>
<h:body>
<jsp:include src="/common/includes/founcred1.html" />
...
</h:body>
Given the XML syntax of your markup, you seem to be using Facelets (*.xhtml
) as view technology. Facelets is a completely distinct view technology and the successor of JSP. You should not be using JSP tags in Facelets. Forget JSP for now. Use Facelets tags. They are to be declared by the XML namespage xmlns:ui="http://java.sun.com/jsf/facelets"
. To include page fragments in Facelets, use <ui:include>
tag.
<?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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:head>
...
</h:head>
<h:body>
<ui:include src="/common/includes/founcred1.xhtml" />
</h:body>
</html>
You only need to rename your founcred1.html
to founcred1.xhtml
and wrap the content in an <ui:composition>
.
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets">
<p>HTML here</p>
</ui:composition>
See also:
- When to use <ui:include>, tag files, composite components and/or custom components?
- You have not declared the jsp namespace.:
xmlns:jsp="http://java.sun.com/JSP/Page"
- I've include pages like this:
<jsp:directive.include file="xxx.jspx"/>
- The included page should be a valid xml file as well.
精彩评论