首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >样式表不适用于第一个JSF页面

问样式表不适用于第一个JSF页面
EN

Stack Overflow用户
提问于 2011-05-18 22:29:28
回答 2查看 881关注 0票数 2

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

代码语言:javascript
复制
<html>
  <head></head>
  <body>
    <jsp:forward page="./start.jsf" />
  </body>
</html>

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

第二个页面是我之前的第一个页面,我也有过同样的行为。在没有更改的情况下,只要第二页不是行中的第一页,它就可以正常工作。

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

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-18 22:47:32

您应该使用一个调用FacesServlet的URL来调用索引页。也就是说,它负责执行JSF工作。因此,您需要通过index.jsf而不是index.jsp来调用它。

但是,更好的做法是完全摆脱这种粗糙的索引页,在web.xml中将start.jsf定义为<welcome-file>。

代码语言:javascript
复制
<welcome-file-list>
    <welcome-file>start.jsf</welcome-file>
</welcome-file-list>

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

票数 3
EN

Stack Overflow用户

发布于 2011-05-18 23:17:03

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

代码语言:javascript
复制
<%  response.setStatus(301);
    response.setHeader("Location", "/start.jsf?" + request.getQueryString());           
response.setHeader("Connection", "close");
%>

或使用

代码语言:javascript
复制
     response.sendRedirect("/start.jsf?" + request.getQueryString());

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

代码语言:javascript
复制
    <urlrewrite>
    ...
      <rule enabled="true">
        <from>^/$</from>
        <to last="true">/index.jsf</to>
      </rule>   
    ...
   </urlrewrite>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6046390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档