2014-10-15 2 views
1

Привет, У меня есть шаблон с заголовком, меню и содержимым, и я построил свою динамическую меню, теперь хочу знать, как я могу сделать, чтобы сделать клик каждой опции в моем меню только обновлением содержимое моего макета и заголовка и меню останется таким, как они есть ... вот мой шаблон:расположение элементов в центре с помощью menubar

<div id="header" style="height: 70px;"> 
    <ui:insert name="header" > 
     <ui:include src="header.xhtml" /> 
    </ui:insert> 
</div> 

<div id="menu" style="height: 50px;"> 
    <ui:insert name="menu" > 
     <ui:include src="menu.xhtml" /> 
    </ui:insert> 
</div> 

<div id="content"> 
    <ui:insert name="content" > 
     <ui:include src="content.xhtml" /> 
    </ui:insert> 
</div> 

может кто-то помочь? Спасибо!

ответ

1

Вы должны использовать JSF Templating, которые показывают в @ wittakarn пример с DefaultMenuItem и setUrl на другую страницу, а на другой странице используется тот же шаблон, заголовок и меню останутся.

+0

Спасибо большое !!! :) работает!! жаль im новичок: P и может у помочь мне тоже с этим сообщением? http://stackoverflow.com/questions/26408308/call-method-from-backing-bean-sends-propertynotfoundexception?noredirect1_comment41471694_26408308 СПАСИБО МНОГО! – Mariah

2

Я предлагаю вам использовать JSF Templating. Применяя этот подход, ваши страницы легко продлить и повторно использовать.

Это мой пример, который используют p:layout, ui:composition и т.д.

layout.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" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:p="http://primefaces.org/ui"> 
    <h:head> 
     <title>Layout-menu</title> 
    </h:head> 
    <h:body> 
     <p:layout> 
      <p:layoutUnit position="west" 
          resizable="true" 
          size="250" 
          minSize="40" 
          maxSize="400"> 
       <h:form> 
        <p:menu> 
         <p:submenu label="Navigations"> 
          <p:menuitem value="input" 
             outcome="inputText" 
             icon="ui-icon-star"/> 
          <p:menuitem value="dropdown" 
             outcome="selectOneMenu" 
             icon="ui-icon-star"/> 
         </p:submenu> 
        </p:menu> 
       </h:form> 
      </p:layoutUnit> 

      <p:layoutUnit position="center"> 
       <ui:insert name="source" /> 
      </p:layoutUnit> 
     </p:layout> 
    </h:body> 
</html> 

inputText.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:ui="http://java.sun.com/jsf/facelets" 
       xmlns:h="http://java.sun.com/jsf/html" 
       xmlns:f="http://java.sun.com/jsf/core" 
       xmlns:p="http://primefaces.org/ui" 
       template="layout.xhtml"> 
    <ui:define name="source"> 
     <h:form> 
      inputText 
     </h:form> 
    </ui:define> 

</ui:composition> 

selectOneMenu.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:ui="http://java.sun.com/jsf/facelets" 
       xmlns:h="http://java.sun.com/jsf/html" 
       xmlns:f="http://java.sun.com/jsf/core" 
       xmlns:p="http://primefaces.org/ui" 
       template="layout.xhtml"> 
    <ui:define name="source"> 
     <h:form> 
      selectOneMenu 
     </h:form> 
    </ui:define> 

</ui:composition> 

Вы можете запустить тест на странице layout.xhtml как это http://host:port/project/layout.xhtml

Вы можете увидеть больше информации о Templating с другого сайта, такие как JSF 2 Templating With Facelets Example, Using Facelets Templates и т.д.

+0

Здравствуйте, wittakarn, thnx 4 ответ, вопрос в том, что я не знаю, какой код добавить в мой компонент DefaultMenuItem, когда вы нажимаете, чтобы изменить только содержимое страницы, а заголовок и меню останутся такими, какие они есть. Спасибо !! – Mariah

+0

как работает «результат»? –

Смежные вопросы