Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JSF problem with FireFox 3.5 caching, wyciwyg:// prefix

I am new to JSF and have a problem with my simple JSF application. I use Facelets and Richfaces on WebLogic 10.3.2 (11g). The application is essentially 3 pages:

A <--> B <--> C

where the intermediate arrows denote navigation rules. The navigation is performed through a4j:commandButtons The problem is in Firefox 3.5, when I click from B to C, I get a url starting from wyciwig://. In more detail, the starting url is:

http://localhost:7001/myapp/index.faces

and the url I get when I navigate from B to C is this:

wyciwyg://20/http://localhost:7001/myapp/index.faces

From a Google search I saw that wyciwig is WhatYouCacheIsWhatYouGet, so the issue is probably related to caching. In that direction, I did two things:

A. I added the following meta tags:

<meta http-equiv="Pragma" content="No-cache"/>
<meta http-equiv="Cache-Control" content="no-store,No-cache,must-revalidate,post-check=0,pre-check=0,max-age=0"/>
<meta http-equiv="Expires" content="-1"/>

B. I added a PhaseListener to add HTML header tags, as suggested here.

Unfortunately, the problem persists.

Another thing that could be related is that for some reason my navigation does not change the url that appears in the address bar of the browser. The links that appear in the status bar when I hover the mouse over the a4j:commandButtons is always

http://localhost:7001/myapp/index.faces#

So the questions are the following:

  1. Why does this wyciwyg://20/ prefix appear, and how can I overcome this?
  2. What can I do to change the url when navigating from page to page? Will this make the "Back button work"?

Cheers!

UPDATE 1: These guys here (text in Portuguese) say that replacing all a4j:commandLink with a4j:htmlCommandLink fixes the problem. I did, and they are right. I don't understand the reason, through.

like image 709
Markos Fragkakis Avatar asked Jan 22 '23 20:01

Markos Fragkakis


1 Answers

Actually the answer is fairly simple and explained in the RichFaces FAQ which I suggest you read thoroughly!

The ajax components are not designed for page navigation and will not work when used this way.

See http://community.jboss.org/wiki/CommonAjaxRequestsProblems#navigation

The reason a4j:htmlCommandLink works is that it is not really an ajax component but a plain old HTML link tag.

Hope that helps explain things.

like image 115
Sam Elstob Avatar answered Jan 28 '23 05:01

Sam Elstob