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
>

Reply via email to