Gå til innhold

Feil ved instansiering av JavaBean to ganger


Anbefalte innlegg

Hei,

 

Jeg har en JavaBean, test.Person:

 

package test;

public class Person {

private String name;

private int age;

public String getName() {
	return name;
}

public void setName(String name) {
	this.name = name;
}

public int getAge() {
	return age;
}

public void setAge(int age) {
	this.age = age;
}

}

 

 

Og min JSP-fil tilsvarer denne koden:

 

<jsp:useBean id="personBean" class="test.Person" type="test.Person" />
<%
// Dummy object (in reality fetched from database using JPA):
test.Person person = new test.Person();
person.setName("John");
person.setAge(30);

// Instantiate the bean once more using the object:
personBean = person; // Here is the reason setProperty fails. But why?
%>
<jsp:setProperty name="personBean" property="*" />   <%// This doesn't work. personBean.name and personBean.age are NOT set %>

<fieldset>
<legend><b><%= request.getParameter("name") == null ? "Before" : "After" %> editing:</b></legend>
Name: <%= personBean.getName() %><br>
Age: <%= personBean.getAge() %>
</fieldset>

<br>

<form method="POST" action="person.jsp">
Name: <input type="text" name="name" value="new John"><br>
Age: <input type="text" name="age" value="55"><br>
<input type="submit">
</form>

 

Det jeg er ute etter, er å hente et eksisterende objekt hvor attributt-verdier allerede

er satt. Deretter vil jeg instansiere Java-bønna som dette objektet for å kunne

redigere verdier på objektet.

 

Jeg vet at jeg kunne gjort som dette:

 

<%
test.Person person = new test.Person();
person.setName("John");
person.setAge(30);

person.setName(request.getParameter("name"));
person.setAge(Integer.parseInt(request.getParameter("age")));

 

Problemet er at jeg har en bean med scope="session", siden jeg

har at registreringsskjema som går over 3-4 sider. I tillegg, så har

ojektet jeg henter fra databasen mange attributer, noe som ville betydd

masse unødvendig manuelt arbeid. Og mange av attributtene er dessuten

ikke av typen String, int, osv, men andre klasser og Enums osv, noe som

krever enda mer ekstra arbeid. Alt dette kan jeg unngå hvis jeg bare hadde

klart å instansiere bønna med objektet jeg allerede har, og dermed kunne

endre verdiene direkte på bønna etterpå...

 

<jsp:setProperty feiler og jeg forstår ikke hvorfor...

 

Jeg har sittet og knotet med dette i 1 døgn nå, og med en prosjekt-frist som nærmer

seg, så søker jeg hjelp her. Jeg hadde blitt veldig takknemlig om noen hadde en

forklaring på hvordan man kan gjøre det jeg prøver på.

Endret av jogrba
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...