включить JSP в качестве заголовка на основе условия в JSF - PullRequest
0 голосов
/ 06 ноября 2011

Я использую JSF-2.0 и пытаюсь включить jsp в качестве заголовка для моего текущего jsp. Но все, что я хочу, это то, что включенный jsp должен быть изменен на основе учетных данных для входа.Более понятно ... в зависимости от того, кто входит в мое приложение, меню заголовка (включая jsp) должно отличаться. Я пытался реализовать описанный ниже способ, но он не работал .. любая помощь будет оценена

<html>
 <head></head>
 <body>
  <%
  String menuHeader = (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("menuAssigned");
  if (menuHeader.equals("XX")){ %>
  <f:view> <jsp:include page="XHeader.jsp" /> </f:view>
  <% }else if(menuHeader.equals("YY")){ %>
 <f:view>  <jsp:include page="YHeader.jsp" />
  <%}%>
   ---
  </f:view>
 </body>
</html>

Ответы [ 2 ]

0 голосов
/ 06 ноября 2011

Не используйте Scriptlets . Когда-либо.

Ваша переменная menuAssigned доступна только в EL по #{menuAssigned}. Я предлагаю выровнять значение переменной menuAssigned с именем файла включения JSP. Тогда вы можете просто использовать

<jsp:include page="#{menuAssigned}Header.jsp" />

Представьте, что menuAssigned равно XX, тогда это будет включать XXHeader.jsp.


Не связано с конкретной проблемой, почему вы используете устаревшие JSP, хотя вы, очевидно, уже используете JSF 2.0, которая поставляется вместе с потрясающими преемниками JSP Facelets (XHTML)?

0 голосов
/ 06 ноября 2011

Краткий ответ, используйте EITHER JSP или JSF control. Не смешивайте их слишком много.

<html>
 <head></head>
 <body>
  <f:view>
    <h:panelGroup rendered="#{menuHeader == 'XX'}">
          <%@include file=”XHeader.jsp" %>
    </h:panelGroup>
    <h:panelGroup rendered="#{menuHeader == 'YY'}">
          <%@include file=”YHeader.jsp" %> 
    </h:panelGroup>
  </f:view>
 </body>
</html>

Возможно, статический включает? Опять же, я использую Facelets с JSF уже несколько лет. Больше не используется для JSP. Это было какое-то время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...