Announcement

Collapse
No announcement yet.

Probleme mit Struts 2 und beans

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit Struts 2 und beans

    Hallo,
    ich hoffe ich bin in diesem Forum richtig.

    ich habe vor kurzem angefangen mich in Struts, JSP und beans einzuarbeiten für ein kleines Projekt an der Uni.

    Im Prinzip funktioniert alles wunderbar nur habe ich mein gesamtes Projekt auf Struts 2.x ausgelegt und keine Zeit es auf 1.x umzuschreiben Das größte Problem ist, dass ich es einfach nicht hinbekomme beans zu befüllen und Sessionweit auszulesen.

    Ganz konkret sieht es folgendermassen aus:

    1. user authentifiziert sich

    2. Eine Action wird aufgerufen...Datenbankabfrage usw.

    3. Ergebnis JSP anzeigen.

    Nun ist es ja wenig sinnvoll immer wieder die DB zu bemühen um Daten auszulesen die man permanent braucht. Also schrieb ich mir eine User-Bean die im Prinzip alle Userrelevanten Daten beinhalten soll.

    Leider funktioniert eben das nicht. Ich kann zwar Daten aus einer bean lesen mit....

    Code:
    <s:bean name="myMts.User" id="user">
      Willkommen <s:property value="bn"/>
    </s:bean>
    ...für den Benutzernamen z.B. aber ich kann die daten nicht nach der Login.Action in die bean schreiben. Oder, was ich mir auch vorstellen könnte, dass die Daten korrekt in der bean abgelegt werden, mit obigem Code wird dann aber auf eine andere Instanz der Userbean zugegriffen.

    Hier meine Login (der relevante Teil)

    Code:
    package login;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import logic.DBOps;
    import myMts.User;
    
    import org.apache.struts2.dispatcher.mapper.ActionMapping;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class Login extends ActionSupport {
       private String bn = null;
    
       private String pw = null;
    
       public String execute(ActionMapping mapping, HttpServletRequest request, HttpServletResponse response) throws Exception {
    
          if (isInvalid(getBn()))
             return INPUT;
          if (isInvalid(getPw()))
             return INPUT;
           //Ein Teil der Logik der Anwendung
          DBOps dbops = new DBOps();
                   //Login erfolgreich
          if (dbops.login(getBn(), getPw())) {
             
                         User bean = (User)request.getSession().getAttribute("User");
             
             if(bean == null) {
                    bean = new User();
    
                    // TODO: befülle bean mit Werten aus der Datenbank
                    
                    //Zum Testen nur diese beiden
                    bean.setBn(bn);
                    bean.setPw(pw);
          
           }
           request.getSession().setAttribute("User", bean);       
             
             return SUCCESS;
          }//Login schlug fehl, Benutzer existiert nicht
                    else {
             setMsg("Login fehlgeschlagen!");
             setReason("Benutzername und/oder Passwort falsch");
             return ERROR;
          }
          
          /*TODO
           * Benutzerdaten komplett holen und setzen
           * Wichtig zum speichern in der User Bean
           */
          
       }
    und die bean

    Code:
    package myMts;
    
    import java.io.Serializable;
    
    public class User implements Serializable {
    
    	private String name;
    
    	private String vorname;
    
    	private String mail;
    
    	private String bn;
    
    	private String pw;
    
    	private String signatur;
    
    	private String system;
    
    	private String typ;
    	
    	public User() {
    
    		bn = "";
    		pw = "";
    		
    		name="";
    		vorname="";
    		mail="";
    		system="";
    		signatur="";
    		typ="";
    
    	}
    	
    
    	public String getBn() {
    		return bn;
    	}
    
    	public void setBn(String bn) {
    		this.bn = bn;
    	}
    
    	public String getMail() {
    		return mail;
    	}
    
    	public void setMail(String mail) {
    		this.mail = mail;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getPw() {
    		return pw;
    	}
    
    	public void setPw(String pw) {
    		this.pw = pw;
    	}
    
    	public String getSignatur() {
    		return signatur;
    	}
    
    	public void setSignatur(String signatur) {
    		this.signatur = signatur;
    	}
    
    	public String getSystem() {
    		return system;
    	}
    
    	public void setSystem(String system) {
    		this.system = system;
    	}
    
    	public String getTyp() {
    		return typ;
    	}
    
    	public void setTyp(String typ) {
    		this.typ = typ;
    	}
    
    	public String getVorname() {
    		return vorname;
    	}
    
    	public void setVorname(String vorname) {
    		this.vorname = vorname;
    	}
    
    }
    Was mache ich falsch?

    Wenn zufällig noch jemand ein paar gute Tutorials, etc. zum Thema Struts 2 kennt wäre ich sehr dankbar.

    Vielen Dank im Vorraus
Working...
X