Hi Use ui:decorate instead ui:include in the parts you need an ui:define to be taken into account when the templates are resolved.
regards, Leonardo Uribe 2014-07-01 9:29 GMT-05:00 Paul Spencer <p...@intekon.com>: > Using MyFaces 2.2.3 > > The intent is for the contents of the <ui:define> variable page_title to > appear both in the browser title bar and in the page’s content header area > while using a common template across many pages. The content header area is > displayed in the <body> of the page and is there to give each page a > consistent look. > > In the example below, “My Page1 Title” appears as the title of the page1.jsp, > but not in the header content of the page. > > Why does the <ui:define> variable page_title evaluate to blank/null in > includes pages? > > Is there a better way to accomplish the intended behavior? > > > *** > * Page1.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:f="http://java.sun.com/jsf/core" > xmlns:h="http://java.sun.com/jsf/html" > xmlns:ui="http://java.sun.com/jsf/facelets"> > <h:body> > <ui:composition template="/template/commonLayout.xhtml"> > <ui:define name=“page_title”>My Page1 Title</ui:define> > <ui:define name=“content"> > <f:view transient=“true”> > <h1>Page 1</h1> > </f:view> > </ui:define> > > </ui:composition> > </h:body> > </html> > > > > *** > * commonLayout.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:h="http://java.sun.com/jsf/html" > xmlns:ui="http://java.sun.com/jsf/facelets"> > > <h:head> > <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> > <h:outputStylesheet library="css" name="default.css" /> > <h:outputStylesheet library="css" name="cssLayout.css" /> > <title><ui:insert name="page_title" /></title> > </h:head> > > <h:body> > <ui:debug /> > <div id="page"> > <div id="top"> > <ui:insert name="header"> > <ui:include > src="/template/commonHeader.xhtml"/> > </ui:insert> > </div> > <div> > <div id="left"> > <ui:insert name="menu"> > <ui:include > src="/template/commonMenuLeft.xhtml" /> > </ui:insert> > </div> > > <div id="content"> > <ui:insert name="content"> > <ui:include > src="/template/commonContent.xhtml"/> > </ui:insert> > </div> > <ui:debug></ui:debug> > </div> > <div id="bottom"> > <ui:insert name="footer"> > <ui:include > src="/template/commonFooter.xhtml" /> > </ui:insert> > </div> > > </div> > </h:body> > </html> > > *** > * commonHeader.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:ui="http://java.sun.com/jsf/facelets"> > <body> > <ui:component> > <h1 style="text-align: center; color: black; > background-color: white;"> > <ui:insert name="page_title" /> > </h1> > </ui:component> > </body> > </html> > > > Paul Spencer >