当通过侦听器重定向页面时,不应用JSF层叠样式表

时间:2011-05-27 11:47:53

标签: jsf-2

我通过f:event type =“preRenderView”listener =“#{sessionCheck.loginVerify}”/在我的jsf页面中使用了以下监听器:

public void loginVerify() {
  try {
    ExternalContext    eCTX    = FacesContext.getCurrentInstance().getExternalContext() ;
    HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();

    // eCTX.redirect(eCTX.getRequestContextPath() + "/index.xhtml");
    eCTX.dispatch("/index.xhtml");
  } catch (java.lang.Exception e) {}
}

但是,当我使用重定向或调度时,样式表不会应用于索引页面。 索引xhtml中的样式表引用是:

<link href="#{facesContext.externalContext.requestContextPath}/resources/css/myStyles.css" rel="styleSheet" type="text/css"/>

我尝试添加以下样式表参考,但没有区别:

<link href="/resources/css/m450.css" rel="styleSheet" type="text/css"/>  

有人必须解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

第一个应该可以正常工作,尽管它可以简化为

<link href="#{request.contextPath}/resources/css/myStyles.css" rel="styleSheet" type="text/css"/>

右键单击Web浏览器中的页面并选择查看源,EL是否已经过评估?如果您使用的是Firefox,可以点击href,它是否显示正确的CSS?打开Firebug,检查 Net 选项卡,CSS是否正确加载?