2011-02-10 2 views
1

Я пытаюсь реализовать меню в JSF, которое я смог сделать.JSF содержит проблемное меню, связанное с

menucontents.jsp:

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %> 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
<html> 
<head> 
    <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8" /> 
    <title>MyFaces - the free JSF Implementation</title> 
    <link rel="stylesheet" type="text/css" href="<%= request.getContextPath() %>/pages/css/basic.css" /> 
</head> 
<body> 
<f:view> 
    <f:loadBundle basename="com.cpc.resources.menu" var="menu"/> 
    <t:div id="hNav_outer"> 
     <t:panelNavigation2 id="nav1" layout="list" itemClass="off" activeItemClass="on" openItemClass="on" 
          renderAll="true"> 
      <t:commandNavigation2 value="#{menu['menu_Home']}" style="padding-left: 0px;"> 
       <t:commandNavigation2> 
        <f:verbatim>&#8250; </f:verbatim> 
        <t:outputText value="#{menu['menu_Home']}"/> 
       </t:commandNavigation2> 
      </t:commandNavigation2> 
      <t:commandNavigation2 value="#{menu['menu_admin']}" style="padding-left: 150px;"> 
       <t:commandNavigation2> 
        <f:verbatim>&#8250; </f:verbatim> 
        <t:outputText value="#{menu['menu_admin_change_password']}"/> 
       </t:commandNavigation2> 
       <t:commandNavigation2> 
        <f:verbatim>&#8250; </f:verbatim> 
        <t:outputText value="#{menu['menu_admin_forgot_password']}"/> 
       </t:commandNavigation2> 
      </t:commandNavigation2> 

     </t:panelNavigation2> 
    </t:div> 
</f:view> 
</body> 
</html> 

menu.jsp:

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %> 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
<html> 
<head> 
    <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8" /> 
    <title>MyFaces - the free JSF Implementation</title> 
    <link rel="stylesheet" type="text/css" href="<%= request.getContextPath() %>/pages/css/basic.css" /> 
</head> 
<body> 
<f:view> 

<f:subview id="headerinclude1"> 
    <jsp:include page="menucontents.jsp" /> 
</f:subview> 
</f:view> 
</body> 
</html> 

Я пробовал различные комбинации т.е. путем удаления HTML/BODY/F: вид тегов, но ничего, кажется, работает I я знаю, что я делаю это неправильно, не в состоянии проверить это. Любая помощь будет оценена по достоинству.

Кроме того, первая часть кода при выполнении как одного файла работает очень хорошо, единственная проблема заключается в том, когда я включаю его в другой JSP, меню не отображается.

ответ

1

<f:subview> должен быть включен в файл include, а не в родительский файл. Замените <f:view> в файле menucontents.jsp на <f:subview> и удалите <f:subview> с menu.jsp.

Обобщенная:

menu.jsp

<f:view> 
    <jsp:include page="menucontents.jsp" /> 
</f:view> 

menucontents.jsp

<f:subview id="menucontents"> 
    <f:loadBundle basename="com.cpc.resources.menu" var="menu"/> 
    ... 
</f:subview> 

(обратите внимание, что включаемый файл должен не имеют <f:view>, вы также не нужно HTML голову/тело вокруг него, которое будет производить только invalid H TML)

+0

Большое спасибо за @BalusC действительно оценил ваш ответ. Я пробовал вещи, о которых вы упоминали, и теперь, когда я вызываю menu.jsp, я получаю следующий «>>>» в качестве вывода в браузере. –

+0

You Добро пожаловать. – BalusC

+0

@BalusC Я все еще не получаю желаемый вывод. Я получаю «>>>» в качестве вывода в браузере. –

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