在<jsp:include>标签</jsp:include>中使用EL

时间:2012-07-26 15:19:58

标签: el jsf-1.2 jspinclude

我有一个jsf 1.2 / rich faces 3.2.2项目(使用java 6)。我想根据登录用户的类型有条件地显示菜单栏。从问题How to conditionally include a file in my template using JSF and Facelets?我尝试了以下内容: -

...
<td valign="top" align="left" height="100%">
</f:verbatim> 
 <jsp:include page="../Menu${authenticateBean.menuSuffix}.jsp" /> <f:verbatim></td>
...
i also tried 
  <jsp:include page="../Menu#{authenticateBean.menuSuffix}.jsp" />
...

其中authenticateBean.menuSuffix是一个返回“A”或“B”的字符串,最终理论上“MenuA.jsp”或“MenuB.jsp”页面应该包含在我的页面中。但我得到以下错误

javax.servlet.ServletException: File &quot;/pages/includes/LeftPan.jsp&quot; not found

帮助。 PLZ。

1 个答案:

答案 0 :(得分:0)

继承人我是如何管理它的。如果需要,可以作为答案......

<%
AuthenticateBean authBean=
((AuthenticateBean)FacesUtils.getManagedBean(AuthenticateBean.MANAGED_NAME));
    String panSuffix = authBean.getPanSuffix();
String impPage = "../includes/Menu"+ panSuffix +".jsp";
 %>
 .
 .
 .  
<jsp:include page="<%= impPage %>" />

在getPanSuffix()中,我放置了业务逻辑,用于检查登录用户的类型并相应地返回一个字符串。对于“A”类用户。 MenuA.jsp将显示,对于类型“B”,用户将显示MenuB.jsp。可能是一种原始的做事方式,但对我有用。 谢谢大家。