Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CSS style sometimes only applied after a page refresh on a jsf page?

Tags:

css

jsf

icefaces

I've been struggeling a while with a strange bug in our application and wasn't able to find solution, even on google and stackoverflow i found nothing matching my problem.

First, a short summary of the application setup:

  • ICEfaces 1.8.1 & JSF 1.2
  • Seam 2.1.1
  • Java 1.6, Update 20
  • running on JBoss 4.2.2.GA
  • application is deployed as EAR-File

If you need any additional information, please tell me, i will try to figure it out and provide it to you.

Now, here comes the problem:

Sometimes (at random pages in the application), the JSF-generated HTML-Code is created and send to the browser, but no stylesheets are included. After a page refresh (hitting F5) the page is displayed as it should and all styles are applied. On some pages, the error seems to be reproducable, on others it just occurs randomly. The bug (?) occurs in Opera (11.51, no earlier versions tested) and Firefox (App works normally in 3.6, but not in Firefox 6). IE9 is working normally.

The site consists of a top level page (template.xhtml) forming the application layout, all other sites are included via ui:include-Tags.

Into the head-Tag, styles are included via

<link href="#{request.contextPath}/stylesheet/icefaces_style.css" rel="stylesheet" type="text/css" />
<link href="#{request.contextPath}/stylesheet/screen.css"
rel="stylesheet" type="text/css" />

This renders to:

Even if the page renders correct, stylesheets are not included into head, they are put into the body-tag, rendered as:

<body>
<link type="text/css" rel="stylesheet" href="/myApp/stylesheet/icefaces_style.css">
<link type="text/css" rel="stylesheet" href="/myApp/stylesheet/screen.css">
</body>

If it doesn't render correct, simply no styles are included. Actually, nothing from the head-tag of template.xhtml page is included into the rendered response.

Do you have any suggestions where to look further or possible solutions? Thanks in advance!

like image 855
Volker Avatar asked Nov 04 '22 14:11

Volker


1 Answers

I cannot find any JSF or expression language documentation that states whether expressions are allowed in the header or not. But I have not seen expressions in the header before and am not surprised that ICEfaces is confused by it when processing the page. Move the CSS styles into the body and then the partial updates from ICEfaces to the web browser will work.

like image 85
Simon C Avatar answered Nov 15 '22 00:11

Simon C