Opdatering fortages men gamle data vises i formen
HejsaNår jeg redigerer en bruger, så bliver opdateringer gemt i databasen. Problemet er, at tekstfelterne på siden ikke bliver opdateret når jeg har poster vha submit knappen så er det de gamle data, der fremgår af mine tekstfelter og altså ikke det som lige er registreret i db. Er der nogen der har en ide om hvad jeg gør forkert?
På forhånd tak, mvh
Torben
JSP-siden:
*****************************************************************
<%@ page contentType="text/html;charset=windows-1252"%>
<%@ page language="java" import="vindmolle.DbHandler"%>
<jsp:useBean id="userBean" class="vindmolle.UserBean" scope="session"/>
<jsp:setProperty name="userBean" property="*"/>
<html>
<head><title>Redigering af brugeren: <%= userBean.getUsername() %></title></head>
<body>
<h1>Redigering af brugeren: <%= userBean.getUsername() %></h1>
<%
//Find den indloggede brugers rolle
String edittorRole = "";
if(request.isUserInRole("superadmin")) edittorRole = "superadmin";
else if(request.isUserInRole("admin")) edittorRole = "admin";
else edittorRole = "user";
DbHandler dbHandler = new DbHandler();
dbHandler.open();
//Brugeren redigeres, hvis den inloggede har rettigheder til det
if(dbHandler.kanRedigerBruger(userBean.getUsername(), edittorRole, request.getRemoteUser()))
{
userBean.findBrugerDetaljer();
%>
<form action="editUser.jsp" method="post">
<table>
<tr>
<td>Brugernavn:</td>
<td><input type="text" name="username" value="<%= userBean.getUsername() %>">
</td>
</tr>
<tr>
<td>Epost:</td>
<td><input type="text" name="email" value="<%= userBean.getEmail() %>"></td>
</tr>
<tr>
<td>Adganskode</td>
<td><input type="text" name="password" value="<%= userBean.getPassword() %>"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="handling" value="rediger bruger"></td>
</tr>
</table>
</form>
<font color="blue">Der sendes automatisk en e-mail til brugeren om, at han nu er redigeret og derfor også hans brugernavn og password.</font><br>
<font color="red">
<%
String handling = request.getParameter("handling");
if ("rediger bruger".equals(handling)) {
if (userBean.redigerBruger(request.getParameter("password"), request.getParameter("email"))){
%>Succecfuld redigering - <%
}
else {
%>Bruger kunne ikke redigeres. <%
}
}
%>
<%= userBean.getMessage() %>
</font>
<%
}
else
{
%> Du har ikke rettigheder til at redigere denne bruger!
<%
}
%>
<br>
<a href="userList.jsp">userList</a>
</body>
</html>
*****************************************************************
Bean klassen:
*****************************************************************
package vindmolle;
import java.sql.*;
import javax.servlet.*;
import java.sql.*;
import javax.naming.*;
import javax.sql.*;
/**
* Denne javabønne har ansvaret for registrering af en bruger.
*/
public class UserBean
{
private String username = "";
private String password = "";
private String email = "";
private String message = ""; // fejlmeddelelse til brugeren
private Util util = new Util();
public void setUsername(String un) { username=un; }
public String getUsername() { return username; }
public void setPassword(String pa) { password = pa; }
public String getPassword() { return password; }
public void setEmail(String email) { this.email = email; }
public String getEmail() { return email; }
public void setMessage(String m) { message = m; }
public String getMessage() { String m=message; message=""; return m; }
/** Forbindelsen til connectionpoolen. Oprettes når klassen indlæses */
private DbHandler dbHandler = new DbHandler();
/**
* Registrerer ny bruger og sender adgangskode til epost-adressen
* @return true hvis oprettelsen gik godt, ellers false.
*/
public synchronized boolean opretBruger()
{
int brugerOprettet;
if (username.length() >= 2 && email.length() >= 5 && password.length() >=6)
{
dbHandler.open();
brugerOprettet = dbHandler.opretBruger(username, password, email);
if(brugerOprettet == 0)
{
try
{
String overskrift = "Du er nu oprettet som bruger på localhost/TP-Test";
String tekst = "Dit brugernavn er:"+username+"\n"+"Din kode er:"+password+"\n"+"Du er registreret med følgende email:"+email+"\n"+"Mvh"+"\n"+"Localhost/TP-Test";
String afsender = "TEST@TEST.Test";
String modtager = email;
String smtphost = "smtp.mail.dk";
util.sendMail(overskrift, tekst, afsender, modtager, smtphost);
message = "Brugeren "+username+" oprettet og email afsendt";
return true;
}
catch (Exception e)
{
System.err.println(e);
}
}
else if(brugerOprettet == 1)
{
message = "En bruger med "+username+" findes i forvejen - vælgt et nyt brugernavn";
return false;
}
else if(brugerOprettet >= 2)
{
message = "Der skete en teknisk fejl(nr. "+brugerOprettet+") i forbindelse oprettelse af bruger)";
return false;
}
}
else{
message = "Brugernavn(min 2 karakter), adgangskode(min 6 karakter) og gyldig epost skal være udfyldt";
return false;
}
return false;
}
public synchronized boolean redigerBruger(String requestPassword, String requestEmail)
{
this.password = requestPassword;
this.email = requestEmail;
int brugerRedigeret; //0=redigeret, 1=har ikke rettigheder til at redigerer bruger, 2=brugernavn findes ikke i tomcat_users, 3=exception - teknisk fejl
if (email.length() >= 5 && password.length() >=6)
{
dbHandler.open();
brugerRedigeret = dbHandler.redigerBruger(password, email, username);
if(brugerRedigeret == 0)
{
try
{ //Mail:
String overskrift = "Du har redigeret din brugerprofil på localhost/TP-Test";
String tekst = "Dit brugernavn er:"+username+"\n"+"Din kode er:"+password+"\n"+"Du er registreret med følgende email:"+email+"\n"+"Mvh"+"\n"+"Localhost/TP-Test";
String afsender = "tope01ab@student.cbs.dk";
String modtager = email;
String smtphost = "smtp.mail.dk";
util.sendMail(overskrift, tekst, afsender, modtager, smtphost);
message = "Opdatering på "+username+" er nu gennemført";
return true;
}
catch (Exception e)
{
System.err.println(e);
message = "Teknisk fejl under tilsending af mail til "+username+" med redigerede oplysninger(UserBean.java - redigerBruger)";
}
}
else if(brugerRedigeret == 1)
{
message = "Du har ikke rettigheder til at redigere "+username+".";
return false;
}
else if(brugerRedigeret == 2)
{
message = "Brugeren "+username+" findes ikke - denne fejl burde ikke kunne forekomme.";
return false;
}
else if(brugerRedigeret >= 3)
{
message = "Der skete en teknisk fejl(nr. "+brugerRedigeret+") i forbindelse oprettelse af bruger)";
return false;
}
}
else{
message = "Brugernavn(min 2 karakter), adgangskode(min 6 karakter) og gyldig epost skal være udfyldt";
return false;
}
return false;
}
/**
* Finder de resterende detaljer om brugeren
* @return true hvis oprettelsen gik godt, ellers false.
*/
public synchronized boolean findBrugerDetaljer()
{
if(username!=null)
{
dbHandler.open();
UserBean temp = dbHandler.getUserBean(username);
password = temp.getPassword();
email = temp.getEmail();
message = "Du kan nu redigerer overstående bruger - detaljerne er hentet i databasen ud fra brugernavnet";
return true;
}
else
{
message = "Du søgte efter en bruger, der ikke eksisterer i databasen";
return false;
}
}
}
*****************************************************************
