2

样式表不适用于我的第一个 JSF 页面。我有一个 index.jsp 转发到我的第一个 JSF 页面。

<html>
  <head></head>
  <body>
    <jsp:forward page="./start.jsf" />
  </body>
</html>

在 start.jsf 上,样式表不适用,但如果我导航到第二页,我的样式表将完全适用。

第二页是我之前的第一页,我也有同样的行为。如果不进行更改,只要该页面不是行中的第一个页面,第二个页面就可以正常工作。

因此 CSS 和页面本身必须是正确的。我认为这是一个配置问题。

有任何想法吗?

4

2 回答 2

3

您应该使用调用FacesServlet. 它就是负责做JSF工作的人。所以你需要通过index.jsf而不是调用它index.jsp

但是,更好的是完全摆脱这个 hacky 索引页面并定义start.jsf<welcome-file>in web.xml

<welcome-file-list>
    <welcome-file>start.jsf</welcome-file>
</welcome-file-list>

在文件旁边的同一文件夹中提供一个 文件,这样 servlet 容器就会被欺骗,认为索引页面确实存在(即默认情况下它不检查索引页面的任何 servlet 映射)。start.jsfstart.jsp

于 2011-05-18T14:47:31.753 回答
0

尝试使用重定向而不是转发。你可以在你的jsp中这样做:

<%  response.setStatus(301);
    response.setHeader("Location", "/start.jsf?" + request.getQueryString());           
response.setHeader("Connection", "close");
%>

或使用

     response.sendRedirect("/start.jsf?" + request.getQueryString());

这不是解决问题的最佳方法,我在我的项目 tukey urlrewrite 中使用:

    <urlrewrite>
    ...
      <rule enabled="true">
        <from>^/$</from>
        <to last="true">/index.jsf</to>
      </rule>   
    ...
   </urlrewrite>
于 2011-05-18T15:17:02.733 回答