Hallo,
ich habe eine Seite login.jsp. Den Username und das Passwort schreibe ich in eine ManagedBean. Die MB ist als <Session> deklariert.
Darauf folgen noch zwei weiter Seiten, auf denen man Daten in ein Formular eintragen kann.
Auf der letzten Seite möchte ich dann alle Informationen der vorherigen Seiten in eine Datenbank schreiben. Die Daten der letzen Seite sind dann auch verfügbar und können ohne Probleme in die Datenbank geschrieben werden. Jedoch ist die Property USername der Seite login.jsp in der DB leer. Wenn ich die Property aber auf der JSP-Seite ausgeben lasse, ist sie noch da. Das heißt, irgendwie muss der Fehler zwischen Login und Controller liegen.
ManagedBean
Controller:
Letzte JSP-Seite:
ich habe eine Seite login.jsp. Den Username und das Passwort schreibe ich in eine ManagedBean. Die MB ist als <Session> deklariert.
Darauf folgen noch zwei weiter Seiten, auf denen man Daten in ein Formular eintragen kann.
Auf der letzten Seite möchte ich dann alle Informationen der vorherigen Seiten in eine Datenbank schreiben. Die Daten der letzen Seite sind dann auch verfügbar und können ohne Probleme in die Datenbank geschrieben werden. Jedoch ist die Property USername der Seite login.jsp in der DB leer. Wenn ich die Property aber auf der JSP-Seite ausgeben lasse, ist sie noch da. Das heißt, irgendwie muss der Fehler zwischen Login und Controller liegen.
ManagedBean
Java:
public class Login
{
private String username="";
private String userpass="";
Controller controller ;
public LoginController()
{}
public void setUsername(String username)
{
this.username = username;
System.out.println("Login: " +this.username);
this.controller = new Controller();
this.controller.setqNumber(this.username);
}
public String getUsername()
{
return this.username;
}
public void setUserpass(String userpass)
{
this.userpass = userpass;
}
public String getUserpass()
{
return this.username;
}
Controller:
Java:
public class Controller
{
private ArrayList<SelectItem> allApplications = new ArrayList<SelectItem>();
private ArrayList<SelectItem> testRoles;
private int selectedOptionsId=0;
private int selectedRoleId=0;
private String justificationText ="";
private String username="";
private Login login = new Login();
private GiveRolesModel roleModel = new GiveRolesModel();
private OrderModel orderModel = new OrderModel();
public Controller()
{
allApplications.add(new SelectItem(0,"Wählen Sie"));
allApplications.add(new SelectItem(1,"Test1"));
allApplications.add(new SelectItem(2,"Test2"));
}
public void setSelectedRoleId(int selectedRoleId)
{
this.selectedRoleId = selectedRoleId;
}
public int getSelectedRoleId()
{
return this.selectedRoleId;
}
public void setSelectedOptionsId(int selectedOptionsId)
{
this.selectedOptionsId = selectedOptionsId;
}
public int getSelectedOptionsId()
{
return this.selectedOptionsId;
}
public ArrayList<SelectItem> getApplications()
{
return this.allApplications;
}
public ArrayList<SelectItem> getTestRoles()
{
this.roleModel.setSID(getSelectedOptionsId());
this.testRoles = this.roleModel.getTestRoles();
return this.testRoles;
}
public void setJustificationText(String justificationText)
{
this.justificationText = justificationText;
}
public String getJustificationText()
{
return this.justificationText;
}
public String delegateOrder()
{
this.username = this.login.getUsername();
this.orderModel.setOrder(this.justificationText, this.username);
return "login";
}
}
Letzte JSP-Seite:
HTML:
<h:form id="form1">
<p>
<h:selectOneListbox required="true" requiredMessage="Bitte eine Rolle auswählen." id="listOfroles" value="#{Controller.selectedRoleId}" >
<f:selectItems id="role" value="#{Controller.testRoles}"></f:selectItems>
</h:selectOneListbox>
</p>
<br>
<p>Bitte geben Sie eine kurze Begründung für Ihre Antragsstellung ein:</p>
<p>
<h:inputTextarea id="begr_as" value="#{Controller.justificationText}" styleClass="" cols="50" rows="5" required="true" requiredMessage="Bitte Begründung eingeben." ></h:inputTextarea>
</p>
<p style="font-size:10px;">Max. 150 Zeichen.</p>
<br>
<p><h:commandButton styleClass="button" value="Antrag absenden" id="save" action="#{Controller.delegateOrder}" /></p>
</h:form>
Java:
public void setOrder(String justificationText, String username)
{
this.justificationText = justificationText;
this.username = username;
dbQuery = new DatabaseQuery();
this.dbQuery.setUpdate("INSERT INTO ANTRAEGE VALUES(1,"+"'"+this.username+"'"+",'Test','Test','Test','in Bearbeitung','Test','Test','Test',"+"'"+this.justificationText+"'"+",'K.A.')");
this.result = this.dbQuery.getQuery();
}