views:

243

answers:

2

I'm having a strange problem and no luck debugging.

I was tasked with writing a JSR168 compliant portlet to search a database. When you open the portlet, you're given 6 search boxes for different criteria to search several thousand records. Once you press search, it brings up another page (it keeps the first page and uses <jsp: include> for the second page so users can see/change their search terms) with the search results. From the search results page, the user can click on one of the results (which redirects to a new page) and get more detailed information about it.

All of that works. The problem is when the user wants to search again.

When I developed this, I used LifeRay installed on my local machine. Everything works perfectly in IE, Firefox, and Chrome. However, when I deploy it to our development portal (IBM WebSphere), it doesn't quite work in IE. In Firefox/Chrome, when a user is on the detailed information page, they can hit back on their browser and it loads a cached version of the search results. Perfect, because this content rarely changes.

However, in IE, when they click the back button on the detailed view, we get a "Webpage has expired message". I've tried every caching setting in the portal settings for the portlet as well as the page, but haven't had any luck.

Anyone have any ideas?

+1  A: 

There are settings at the portal level too. Check out following link http://publib.boulder.ibm.com/infocenter/wpdoc/v6r0/index.jsp?topic=/com.ibm.wp.ent.doc/wps/adbakbut.html

You could try tweeking some of these paramters as required by your portlets

Nic
A: 

The "Webpage has expired message" in IE indicates that you did a POST. You could try using a GET, which should not have this problem on "back" command.

You should install WebSphere Portal on your developer machine and test locally before going to another environment.

Mercer Traieste
I wish I could use GET, but unfortunately that's not JSR168 compliant. It only allows for POST to submit a form.
I'm confused. From the question i understand that this is a jsr168 portlet.But, it shouldn't matter. You can still rewrite the form as a standard html form. The method attribute can be set to "get", and the action attribute must hold the action url, which can be generated with a <portlet:actionURL/> tag.
Mercer Traieste
What Andre possibly means is that his portlet might no longer be JSR168 compliant should he use GET.
Ryan Fernandes
Understood. I'm sure it will still be jsr168 compliant if you use GET for forms.
Mercer Traieste