Avatar billede andersbl Nybegynder
29. juli 2009 - 10:57 Der er 9 kommentarer og
1 løsning

Bean der overføre variabler.

Hej
Jeg har kun arbejdet med Servletter, men er blevet bedt om at bruge Beans i dette tilfælde. Jeg har lavet et lille eksempel, men kan ikke tilgå variablerne i andre JAVA klasser. Eksempler kan også hjælpe.

============================ JSP filen =======================
<jsp:useBean id="ie" class="minPakke.Test2" scope="session" />
<jsp:setProperty name="ie" property="*" />
Indtast et antal fornavne og aldre:
<form>
  <input type="text" name="fornavn"/> <input type="text" name="efternavn" /><br />
  <input type="submit" value="OK" />
</form>
<br/><br/>
<% 
minPakke.Metoder.visCatsIndex(out);
%>

(indskriver tekst i to input felter som bliver gemt i en bean)


================================ Bønne klassen =============
package minPakke;
public class Test2
{
    String fornavn, efternavn;
   
  public void setFornavn(String n)
  {
      System.out.println(n);
      fornavn = n;
  }

  public void setEfternavn(String n)
  {
      System.out.println(n);
      efternavn = n;
  }
 
  // --------------- getMetoder --------------
  public String getFornavn()
  {
    return fornavn;
  }
 
  public String getEfternavn()
  { 
    return efternavn;
  } 
}


============== Metoden jeg vil have skal kunne modtage variablerne, her udskrives "null" så får ikke den indtastet værdi med over i en anden JAVA klasse. Troede jeg kunne vha. get-metoderne kunne få fat i variablen i alle JAVA klasser. Men desværre


package minPakke;
import javax.servlet.jsp.JspWriter;
public class Metoder {

    public static void  visCatsIndex(JspWriter out){
        minPakke.Test2 bruger = new minPakke.Test2();
        try {   
        System.out.println(bruger.getFornavn() + "øøøøø");
        }
        catch (Exception e){   
        }
        // TODO Auto-generated constructor stub
        System.out.println(bruger.getFornavn() + "æææ");
    }
}


TAK
Avatar billede arne_v Ekspert
29. juli 2009 - 11:07 #1
minPakke.Test2 bruger = new minPakke.Test2();

laver et nyt objekt af typen minPakke.Test2 som ikke har noget med det objekt der oprettes i JSP siden at gøre.
Avatar billede andersbl Nybegynder
29. juli 2009 - 11:11 #2
Hvordan kan får jeg så fat i variablerne fra JSP siden i min Metode klasse????
Avatar billede arne_v Ekspert
29. juli 2009 - 11:18 #3
Send id med over som argument.
Avatar billede andersbl Nybegynder
29. juli 2009 - 11:21 #4
kan du komme med et lidt mere uddybende svar?
Avatar billede arne_v Ekspert
29. juli 2009 - 11:27 #5
<%
minPakke.Metoder.visCatsIndex(out, id);
%>

og:

    public static void  visCatsIndex(JspWriter out, minPakke.Test2 bruger){
        System.out.println(bruger.getFornavn() + "øøøøø");
        System.out.println(bruger.getFornavn() + "æææ");
    }
Avatar billede andersbl Nybegynder
29. juli 2009 - 11:36 #6
Hvis jeg nu vil tilgå variablerne i min Metoder klasse, men ikke vha. JspWriter. Fx hvis der blev tastet noget ind, Bønne klassen modtager dataen, og Metode klassen bruger dataen til at sætte noget ind i databasen. Hvordna ville du så skrive det?

og i sådan et tilfælde hvor man går fra JSP->JAVA->SQL SERVER->JAVA -> JSP ville du stadig bruge bønner til det formål.
Avatar billede arne_v Ekspert
29. juli 2009 - 11:45 #7
Normalt vil man lave det som:

HTTP POST til servlet
servlet gemmer i DB
servlet læser data fra DB og gemmer data i request objekt
servlet forwarder til JSP side
JSP side viser data
Avatar billede arne_v Ekspert
29. juli 2009 - 11:46 #8
Læs evt. http://www.eksperten.dk/guide/743 for lidt forskellige tilgange.
Avatar billede andersbl Nybegynder
29. juli 2009 - 11:57 #9
mange tak. Hvordan giver jeg dig point?
Avatar billede arne_v Ekspert
29. juli 2009 - 12:30 #10
jeg smider et svar som du kan acceptere
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester