Und weils so schön war hab ich hier gleich noch ein Problem, an welchem ich mir die Zähne ausbeiße...
Ich betreibe meine JSF-Anwendung in einem Tomcat 5.5. Meine index.html leitet direkt auf diese Login-Seite weiter, und im Fall das ein Fehler passiert (Session abgelaufen) geschieht auch ein automatischer Redirect auf diese Seite.
Hier habe ich nun ein SelectOneMenu, in welchem der Anwender einen Benutzer auswählt um dann auf OK zu klicken und sich anzumelden.
Mein Problem:
Wird die Seite regulär geladen, dann funktioniert alles wie gewünscht. Ist jedoch zwischenzeitlich die Session abgelaufen, dann wird die Seite zwar angezeigt, aber bei auswählen eines Users bzw. klicken des Login-Buttons wird die Seite nur neu geladen, wobei die entwaige Auswahl eines anderen Users als dem in der Liste obenstehenden verworfen wird...
Ich stelle mir irgendwie vor, dass die Seite auch im Fall eines vorherigen Sessiontimeouts so geladen werden müsste, als wäre es ein "normaler" Aufruf, also sofort neue Session anlegen, nicht erst nach der ersten Aktion. Ist das richtig? Wie tue ich das?
Gruß Taste
Ich betreibe meine JSF-Anwendung in einem Tomcat 5.5. Meine index.html leitet direkt auf diese Login-Seite weiter, und im Fall das ein Fehler passiert (Session abgelaufen) geschieht auch ein automatischer Redirect auf diese Seite.
Code:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://facestrace.sourceforge.net" prefix="ft"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252" />
<link href="styles.css" rel="stylesheet" type="text/css" />
<f:loadBundle basename="messages" var="msgs" />
<title>ABC</title>
</head>
<body>
<f:view>
<h:form>
<h:panelGrid columns="1" styleClass="loginPage"
rowClasses="navigationRow">
<f:facet name="header">
<f:subview id="state">
<jsp:include page="stateArea.jsp" />
</f:subview>
</f:facet>
<h:outputText id="a01" styleClass="label" value="" />
<h:outputText id="a02" styleClass="label" value="" />
<h:outputText id="a03" styleClass="label" value="" />
<h:panelGrid columns="1" styleClass="loginGrid">
<h:panelGrid columns="2" styleClass="whole"
columnClasses="rightAligned, leftAligned" rowClasses="standardRow">
<h:outputText styleClass="loginLabel"
value="#{msgs.loginPage_username}" />
<h:selectOneMenu
value="#{loginManager.userID}"
styleClass="loginMenuLabel"
onchange="submit()" >
<f:selectItems value="#{loginManager.userRoleItems}" />
</h:selectOneMenu>
<h:outputText styleClass="loginLabel" value=" "/>
<h:outputText styleClass="loginLabel" value=" "/>
</h:panelGrid>
<h:outputText value=" " />
<h:commandButton styleClass="button"
value="#{msgs.loginPage_loginButton}" action="#{loginManager.loginAction1}" />
</h:panelGrid>
</h:panelGrid>
</h:form>
<ft:trace />
</f:view>
</body>
</html>
Hier habe ich nun ein SelectOneMenu, in welchem der Anwender einen Benutzer auswählt um dann auf OK zu klicken und sich anzumelden.
Mein Problem:
Wird die Seite regulär geladen, dann funktioniert alles wie gewünscht. Ist jedoch zwischenzeitlich die Session abgelaufen, dann wird die Seite zwar angezeigt, aber bei auswählen eines Users bzw. klicken des Login-Buttons wird die Seite nur neu geladen, wobei die entwaige Auswahl eines anderen Users als dem in der Liste obenstehenden verworfen wird...
Ich stelle mir irgendwie vor, dass die Seite auch im Fall eines vorherigen Sessiontimeouts so geladen werden müsste, als wäre es ein "normaler" Aufruf, also sofort neue Session anlegen, nicht erst nach der ersten Aktion. Ist das richtig? Wie tue ich das?
Gruß Taste