Leere Bean?

Fantasma

Aktives Mitglied
Hallo,

Ich habe ein problem mit JSP und Beans. Es sieht so aus, als ob die Bean nicht befuellt wird. Vielleicht kann mir jemand weiterhelfen?

Der Code ist:

Formular:
HTML:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<jsp:useBean id="newPersona" class="personapack.Persona" scope="session"/>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>AgregarPersona</title>
</head>
<body>
	<jsp:setProperty name="newPersona" property="*"/>
	<form action="/Ej3personas/ServiceHandler?opcion=agregarPers" method=post>
		Nombre: <input type="text" name="nombre"/><br>
		Apellido: <input type="text" name ="apellido"/><br>
		Nacimiento: <input type="text" name ="nacimiento"/><br>
		Email: <input type="text" name ="email"/><br>
		<input type="submit" value="Send">
		<input type="reset" value="Reset">

	</form>
	

</body>
</html>

Die Bean:
Java:
package personapack;

public class Persona  {
		private String nombre= "";
		private String apellido="";
		private String nacimiento="";
		private String email="";
		private int numero =0;
		private static int contador =0;
		
		public Persona(){

		}
		
		/*public Persona(String nombre, String apellido, String nacimiento, String email){
			this.nombre=nombre;
			this.apellido=apellido;
			this.nacimiento=nacimiento;
			this.email=email;
			this.numero =0;
		}*/
		
		public void setNombre(String nombre){
			this.nombre=nombre;
		}
		
		public void setApellido(String apellido){
			this.apellido=apellido;
		}
		
		public void setNacimiento(String nacimiento){
			this.nacimiento=nacimiento;
		}
		
		public void setEmail(String email){
			this.email=email;
		}
		
		public void setNumero(){
			this.numero = ++contador;
		}
		
		public String getNombre(){
			return nombre;
		}
		
		public String getApellido(){
			return apellido;
		}
		
		public String getNacimiento(){
			return nacimiento;
		}
		
		public String getEmail(){
			return email;
		}
		
		public int getNumero(){
			return numero;
		}
}

Und in diesem Teil vom Servlet soll es verarbeitet werden:
Java:
protected void ejecutar (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		String opcion = (String) request.getParameter("opcion");
		request.removeAttribute("opcion");
		System.out.println(opcion);
		else if(opcion.equals("agregarPers")){
			HttpSession session = request.getSession();
			personapack.Persona tmPersona=   
                                (personapack.Persona)session.getAttribute("newPersona");
			session.removeAttribute("newPersona");

			ControlPersonas.getControlPersonas().agregarPersona(tmPersona);
			System.out.println(tmPersona.getApellido());//--> Zeigt nichts an!
			PrintWriter out = response.getWriter();
			response.setContentType("text/html");
			out.print("<html>");
			out.print("<body>");
			out.print(opcion); //----------------------> Zeigt den wert der Operation an = OK
			out.print(tmPersona.getNombre()); //------> Zeigt nichts an!
			out.print(tmPersona.getNumero());//-------> Zeigt 0 an = OK
			out.print("</body>");

		}

Auch mit dem Debugger bekomme ich nur leere Werte ("").

Kann mir jemand einen Tip geben?

Danke schon mal.
Fantasma
 

Fantasma

Aktives Mitglied
PS.:
Wenn ich in der Bean die Variablen nur deklariere ohne sie zu initialisieren dann kommt als ausgabe auch nur null statt eben "" zurueck. Somit schaetze ich dass es wohl am .jsp liegen muss. Aber ich komme gerade einfach nicht weiter.
 

Luke_

Mitglied
Managed Bean Example

das sollte dir weiterhelfen...
der ansatz mit der form ist falsch... der rest sollte funktinoeren, wobei in dem servlet den htmlcode auszugeben fin ich schon ziemlich dreckig, zum testen sollte es aber genügen ;)
 

JimPanse

Bekanntes Mitglied
Managed Bean Example

das sollte dir weiterhelfen...
der ansatz mit der form ist falsch... der rest sollte funktinoeren, wobei in dem servlet den htmlcode auszugeben fin ich schon ziemlich dreckig, zum testen sollte es aber genügen ;)

Na das ist ja totaler unsinn! Das ist JSF -> JavaServer Faces und Fantasma arbeitet mit reinem JSP -> JavaServer Pages.

wenn dann das JSP-Tutorial - Beans in JSPs oder das JSP (Java Server Pages) Grundlagen

aber sowas habe ich leider seit dem Studium nicht mehr gemacht und d.h. kann ich dir da leider auch nicht mehr wirklich weiterhelfen.
 

Luke_

Mitglied
oh verdammt...
das hab ich einfach mal ignoriert :noe: sorry!
hab die beans bisher nur in jsf benutzt... also mal kurz in jsp angerissen, aber nicht erwähnenswert....
warum weist du den attributen denn nen leeren string zu? theoretisch müssten die zugewisenen werte überschrieben werte, aber vielleicht hakts da?

oder
Code:
<jsp:setProperty name="newPersona" property="*"/>
direkt unter useBean?
 

mfernau

Bekanntes Mitglied
Das stimmt allerdings. Das Beispiel da oben ergibt keinen Sinn.

In Deiner JSP-Seite erstellst Du Deine Bean und befüllst sie mit den Request-Parametern die denselben Namen haben wie Deine Bean. Im Initialfall (Du rufst diese JSP-Seite das erste mal auf) ist dort aber alles leer. Gut.
Das Form von Dir soll nun Werte an diese Bean senden - allerdings musst Du dafür das Form auch an dieselbe JSP-Seite wieder zurück senden und nicht an irgend ein Servlet. Damit gibst Du die Kontrolle nämlich komplett aus dem JSP-Context ab an Dein Servlet und dort wird diese Bean nicht befüllt. Es ist sicherlich ohnehin etwas schwierig JSP mit Servlet-Technik zu kreuzen.
Du solltest als action-Target dieselbe JSP-Seite wieder benutzen.
 

Fantasma

Aktives Mitglied
Hallo Leute:
Danke fuer die Hilfe.

Ich hab das jetzt etwas abgeaendert und zwar so dass ich die wertebelegung erst im Servlet mache. Ich war etwas urcheinander gekommen wegen einem Tutorial aber in dem werden die daten in einem formular kontext an eine art uebergangsseite und von dort aus zum servlet geschickt. Und wo dann "property="*"" auf der uebergangsseite aufgerufen wurde gab es schon die daten zum befuellen. aber das funktioniert natuerlcih in meiner version nicht.

Die Anwendung hatte ich eigentlich nur gedacht um mal selbst einen mvc mit .jsp und servletts programmiert zu haben. Mehr nicht. und klar, das html im servlett lasse ich nur solange ich die einzelnen Ifs nicht implementiert habe.

Soweit ich weis benutzt niemand mehr .jsp und servletts. Ist das ricthig oder gibt es faelle in denen es noch notwendig ist?

Ich hab uebrigens eine sehr gute tutorial seite zu JSF gefunden.. Da gibt es isolierte Beispiele zu den einzelnen Komponenten. Sehr gut gemacht finde ich: JSF 2.0 Tutorials (auf Englisch aber mit sehr knappen, verstaendlichen beispielen)

Gibt es hier eigentlich einen Thread wo Tutorial links gesammelt werden? Ich glaube von dem einen oben koennten auch andere profitieren.

Bis dann
F
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H im IE werden leere Bilder mit X gekennzeichnet Web Tier 4
E JSF Datatable leere Zellen anzeigen Web Tier 2
6 JSF Form Attribute nicht an Bean übergeben Web Tier 2
G HTML Fragment in Bean erzeugen? Web Tier 1
W JSF Probleme mit Zugriff zur Managed Bean Web Tier 11
R get-methode der Managed-Bean wird immer 3 mal ausgeführt Web Tier 4
F JSF Bean funktioniert nicht immer.. Web Tier 3
I CSS von Client -> an Bean senden Web Tier 0
H JSF jsf/sessionScoped Bean - Bilder (jpg) werden nicht richtig dargestellt Web Tier 1
S Java Bean und Java Servlet Web Tier 2
G jsf bean erstellen die mir die aktuelle uhrzeit ausgibt als xhtml Web Tier 5
M viele Objekte des Managed Bean Web Tier 3
S [JSF] Zugriff auf Bean (Eclispe,JBoss) Web Tier 12
P JSF Prob mit xhtml / Bean / JS Web Tier 6
J JSF Initialisierung einer ApplicationScoped Bean Web Tier 2
B Berechnen und Anzeigen von Formeln aus der Chemie und Physik mit JSP und Bean Web Tier 14
H Bean-Objekte aus XML erstellen Web Tier 2
L expression language Bean && Bean Web Tier 3
C JSF Methoden in Backing-Bean als JSF-Property Web Tier 3
P JSF Merkwürdiges Verhalten einer Bean Web Tier 11
S CDI: Bean aus einem anderen jar Web Tier 3
X Managed Bean Scope zwischen Request und Session gesucht Web Tier 6
D JSF EL #{not null bean.property} Parse exception Web Tier 2
T Seam-Komponenten oder Java Bean soll direkt nach Appserver-Start "leben" Web Tier 4
B JSF Servlectexception: Verwalteter Bean "..bean" kann nicht erstellt werden Web Tier 2
G JSF Bean Vererbung Web Tier 5
J Validieren abhängiger Felder mit JEE6/Bean validation Web Tier 33
S JSF2: Managed bean aus anderer Dependency Web Tier 7
W MVC mit Bean, JSP und Servlet Web Tier 6
S Style bei fehlerhafter Eingabe (Bean Validation) ändern Web Tier 2
H Managed Bean Aufruf auf Stack legen Web Tier 10
P JSP: Liste in Bean über Session aufbauen Web Tier 6
S Bean Validation (JSF 2.0) funktioniert nicht. Web Tier 4
V Vector aus Bean "holen" / JSP Web Tier 3
B JSF session bean mit worker thread updaten Web Tier 7
K bean methode von jslt aufrufen Web Tier 7
I Eine Bean von einer anderen Bean aufrufen Web Tier 2
J Managed bean und javascript kommunikation (JSF 2) Web Tier 2
G JSF javax.faces.bean Web Tier 2
K Anfängerfrage in JSF: <h:inputText> aus Managed Bean ansprechen Web Tier 6
S Managed bean nicht initialisiert Web Tier 2
A JSF+Glassfish: Probleme mit Managed Bean Web Tier 2
E Methode einer Bean aus anderer Bean aufrufen Web Tier 10
S [SelectItems value(herkunft bean)] in [UI:repeat] lädt daten nicht neu nach Web Tier 3
N MessageResources von Struts in Form-Bean Web Tier 4
N java bean in eclipse Web Tier 6
A JSF SelectOneMenu mit Werten aus Bean vorbelegen Web Tier 2
S JSF: Frage wegen managed-bean Web Tier 3
pusteblume Mehrere Objekte einer Bean Web Tier 10
M Problem mit JSP und Bean Web Tier 2
O 2 Fragen zu JSP und Bean Web Tier 4
E value übergabe an bean! aber wie? Web Tier 3
F Datei von bean aus laden Web Tier 3
N JSF kann Bean nicht finden! Web Tier 7
H JSF - Bean (scope session) - Verfallsdatum? Web Tier 3
G Mit JSTL Rückgabe von Bean Methode ausgeben Web Tier 3
D ResultSet aus Bean an JSP übergeben Web Tier 11
M JSF - Bean aus SessionScope direkt im JSF Code auslesen Web Tier 1
G Eine Instanz pro Managed Bean? Web Tier 2

Ähnliche Java Themen

Neue Themen


Oben