正在處理JSF 2項目之後呈現樣式表。我定義我的login.xhtml頁面的入口頁面在web.xml登錄頁面不會在過濾器
<welcome-file-list>
<welcome-file>login.xhtml</welcome-file>
</welcome-file-list>
而且我也有一個過濾器來檢查,如果用戶登錄
@WebFilter(filterName = "loginCheckFilter", urlPatterns={"/*"})
public class LoginCheckFilter implements Filter
{
@Inject
private LoginStatus loginStatus;
public void do Filter(...)
{
try{
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String path = req.getRequestURI();
if(StringUtils.isNotBlank(path)
&& StringUtils.contains(path, ".xhtml")
&& !StringUtils.endsWith(path, "login.xhtml"))
{
if(loginStatus == null
|| !loginStatus.isLoggedIn())
{
res.sendRedirect(req.getContextPath() + "/login.xhtml");
}
else
{
chain.doFilter(request, response);
}
}
else
{
chain.doFilter(request, response);
}
}catch (Exception ex)
{
log.error(ex);
}
}
.... ....
}
我的CSS文件在以下被引用風格:
<link href="css/styles.css" rel="stylesheet" type="text/css"/>
一切工作順利,直到我更改CSS引用樣式到JSF 2資源處理程序(http://www.mkyong.com/jsf2/resources-library-in-jsf-2-0/)。我已將所有css文件複製到資源文件夾下,並提供了庫名稱和版本號。因此,現在我參考如下的css:
<h:outputStylesheet library="default" name="css/styles.css"/>
更改後,login.xhtml不再呈現樣式表。我在login.xhtml頁面後面有一個welcome.xhtml頁面,除了核心內容外,它的結構幾乎完全相同,但是這個頁面完全沒問題。我刷新了login.xhtml,但它仍未呈現。但是一旦我登錄後,進入下一頁,然後返回到login.xhtml,然後刷新,風格將得到呈現。另外,如果我取消loginCheckFilter,login.xhtml將呈現樣式表。那麼如果有人遇到類似的情況,並知道如何解決它?謝謝!
它的工作原理。非常感謝! – chaoshangfei 2013-02-27 22:49:20
不客氣。 – BalusC 2013-02-27 23:41:30
@BalusC我愛你,你是個好人。 – Foriger 2015-01-29 21:40:40