2009-07-01 3 views
0

Ich habe ein seltsames Problem und kein Glück Debugging.JSR168 Portlet Seltsame Seite Expiring

Ich wurde beauftragt, ein JSR168-konformes Portlet zu schreiben, um eine Datenbank zu durchsuchen. Wenn Sie das Portlet öffnen, erhalten Sie 6 Suchfelder für verschiedene Kriterien, um mehrere tausend Datensätze zu durchsuchen. Wenn Sie auf Suchen drücken, wird eine weitere Seite angezeigt (die erste Seite wird beibehalten und <jsp: include> für die zweite Seite verwendet, damit Benutzer ihre Suchbegriffe sehen/ändern können). Auf der Suchergebnisseite kann der Benutzer auf eines der Ergebnisse klicken (das auf eine neue Seite umleitet) und genauere Informationen darüber erhalten.

All das funktioniert. Das Problem ist, wenn der Benutzer erneut suchen möchte.

Als ich dies entwickelte, habe ich LifeRay auf meinem lokalen Rechner installiert. Alles funktioniert perfekt in IE, Firefox und Chrome. Wenn ich es jedoch in unserem Entwicklungsportal (IBM WebSphere) implementiere, funktioniert es im IE nicht ganz. Wenn sich ein Benutzer in Firefox/Chrome auf der Seite mit den detaillierten Informationen befindet, kann er sich in seinem Browser zurückrufen und eine zwischengespeicherte Version der Suchergebnisse laden. Perfekt, denn dieser Inhalt ändert sich selten.

In IE jedoch, wenn sie auf die Zurück-Schaltfläche in der Detailansicht klicken, erhalten wir eine Meldung "Webseite hat abgelaufen". Ich habe jede Caching-Einstellung in den Portaleinstellungen für das Portlet und die Seite ausprobiert, hatte aber kein Glück.

Wer hat irgendwelche Ideen?

Antwort

0

Die „Webseite hat Nachricht abgelaufen“ in IE zeigt an, dass Sie eine POST tat. Sie könnten versuchen, ein GET zu verwenden, das dieses Problem nicht bei "Zurück" -Befehl haben sollte.

Sie sollten WebSphere Portal auf Ihrem Entwicklungscomputer installieren und lokal testen, bevor Sie in eine andere Umgebung wechseln.

+0

Ich wünschte, ich könnte GET verwenden, aber das ist leider nicht JSR168-konform. Es ermöglicht nur POST, ein Formular zu senden. –

+0

Ich bin verwirrt. Aus der Frage verstehe ich, dass dies ein JSR168-Portlet ist. Aber es sollte nicht wichtig sein. Sie können das Formular immer noch als Standard-HTML-Formular umschreiben. Das Methodenattribut kann auf "get" gesetzt werden, und das action-Attribut muss die Aktions-URL enthalten, die mit einem -Tag generiert werden kann. –

+0

Was Andre möglicherweise bedeutet, ist, dass sein Portlet möglicherweise nicht mehr JSR168-konform ist, sollte er GET verwenden. –

Verwandte Themen