Avatar billede mik28 Seniormester
02. januar 2007 - 21:40 Der er 35 kommentarer og
2 løsninger

<bean:define> forståelsesproblem

Jeg sidder og bokser med at forstå hvordan bønner virker. Hvis jeg vil have en bønne på en side (index.jsp) som jeg vil give en værdi og bruge den værdi på en anden side (index2.jsp). Hvordan gør jeg så det?

<bean:define id="tekst" name="tekst" scope="session" type="java.lang.String"/>
Avatar billede medions Nybegynder
02. januar 2007 - 22:45 #1
I jsp filen skriver du f.eks.

<jsp:useBean id="users" scope="session" class="dk.ifad.DocServer.users" />

så har du en bean med session scope ved navn users.

Din bean er jo en JAVA class med get og set metoder. I din jsp fil kan du så f.eks skrive

String name ="Mik";
users.setName(name);

//>Rune
Avatar billede mik28 Seniormester
02. januar 2007 - 23:48 #2
Hvis min bønne nu ser således ud, hvordan får jeg det så til at virke

package myfirstjava;

public class myfirstjavabean
{
    private String firstMsg = "Dette er noget output fra min bønne!!";
    private String variable;

   
    public String getfirstMsg()
    {
    return (firstMsg);
    }

    public void setfirstMsg(String firstMsg)
    {
    this.firstMsg = firstMsg;
    }
   
    public String getvariable()
    {
    return (variable);
    }

    public void setvariable(String variable)
    {
    this.variable = variable;
    }
}
Avatar billede mik28 Seniormester
03. januar 2007 - 00:08 #3
Hvad mangler jeg så det her giver mening

<jsp:useBean id="myfirstjavabean" scope="session" class="myfirstjava.myfirstjavabean.users"/>
Avatar billede amjensen Nybegynder
03. januar 2007 - 21:53 #4
Det er korrekt det du gør. Når du bruger <bean:define ....> definerer du en bønne, baseret på en variabel du kun har til stede i den sammen hæng hvor du definerer den, således at variablen er tilstede i hele session scope.
Det du måske mangler på din bønne er property og value. Sagt på en anden måde; <bean:define ... > bruges til at afdække en variabel i et andet scope, end der hvor den er tilstede.

Se også: http://struts.apache.org/1.x/struts-taglib/tlddoc/bean/define.html
vh Anne - Marie
Avatar billede mik28 Seniormester
03. januar 2007 - 23:13 #5
Hvorfor er det her så forkert?

<jsp:useBean id="myfirstjavabean" scope="session" class="myfirstjava.myfirstjavabean.test" />

<%
String name ="Mik";
test.setvariable(name);
%>
Avatar billede mik28 Seniormester
03. januar 2007 - 23:19 #6
bean:

package myfirstjava;

public class myfirstjavabean
{
   
    private String variable;

   
    public String getvariable()
    {
    return (variable);
    }

    public void setvariable(String variable)
    {
    this.variable = variable;
    }
}
Avatar billede mik28 Seniormester
03. januar 2007 - 23:19 #7
org.apache.jasper.JasperException: /index.jsp(16,0) The value for the useBean class attribute myfirstjava.myfirstjavabean.test is invalid.
Avatar billede trp79 Nybegynder
07. januar 2007 - 12:51 #8
Det skal vist være sådan her i stedet:
<jsp:useBean id="myfirstjavabean" scope="session" class="myfirstjava.myfirstjavabean" /> <-- test er fjernet! (din struktur har jo ikke noget test classe kun en myfirstjavabean klasse i pakken myfirstjava)

<%
String name ="Mik";
myfirstjavabean.setvariable(name);<-- test ændret til myfirstjavabean (der skal henvises til id - ikke til klasse)
%>
Avatar billede mik28 Seniormester
07. januar 2007 - 12:53 #9
Tak for det
Avatar billede mik28 Seniormester
07. januar 2007 - 13:25 #10
Øv jeg troede lige jeg havde fået det til at virke :-(
Avatar billede trp79 Nybegynder
07. januar 2007 - 13:27 #11
Hvordan ser din kode ud nu?
Avatar billede mik28 Seniormester
07. januar 2007 - 13:29 #12
<jsp:useBean id="minejavabeans" scope="request" class="minejavabeans.minbonne" /> <-- Det virker

Skulle

String name ="Mik";
minbonne.setVariable(name);

i min jsp fil så ikke være okay?
Avatar billede mik28 Seniormester
07. januar 2007 - 13:29 #13
package minejavabeans;

public class minbonne
{
   
    private String variable;

   
    public String getVariable()
    {
    return (variable);
    }

    public void setVariable(String variable)
    {
    this.variable = variable;
    }
}
Avatar billede mik28 Seniormester
07. januar 2007 - 13:35 #14
An error occurred at line: 18 in the jsp file: /index.jsp
Generated servlet error:
/opt/tomcat/jakarta-tomcat-5.0.28/work/Catalina/web-oasen.dk/org/apache/jsp/index_jsp.java:72: cannot resolve symbol
symbol  : variable minbonne
location: class org.apache.jsp.index_jsp
minbonne.setVariable(name);
Avatar billede trp79 Nybegynder
07. januar 2007 - 13:36 #15
id er minejavabeans (useBean id="minejavabeans"..). Derfor skal du tilgår via dette id, altså minejavabeans.setVariable(name).
Avatar billede mik28 Seniormester
07. januar 2007 - 13:41 #16
Avatar billede mik28 Seniormester
07. januar 2007 - 13:49 #17
Hvorfor kan jeg så ikke hente værdien ud på en anden side?
Avatar billede mik28 Seniormester
07. januar 2007 - 13:50 #18
Nu har jeg jo sat den. Hvis du trykker på index2 så bliver den null

<html>
<%@ page language="java" import="java.util.*,java.sql.*,util.*" %>
<jsp:useBean id="minejavabeans" scope="session" class="minejavabeans.minbonne" />


<head>
<title>FLEXBREEZE.DK</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="./style/style1024.css">
</head>


<body>
<div class="top">
<%
String name ="Mik";
minejavabeans.setVariable(name);
%>
<%= minejavabeans.getVariable() %>
Avatar billede mik28 Seniormester
07. januar 2007 - 13:51 #19
<html>
<%@ page language="java" import="java.util.*,java.sql.*,util.*" %>
<jsp:useBean id="minejavabeans" scope="request" class="minejavabeans.minbonne" />

<head>
<title>FLEXBREEZE.DK</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="./style/style1024.css">
</head>

<body>
<div class="top">

<br>
<%= minejavabeans.getVariable() %>

</div>
Avatar billede mik28 Seniormester
07. januar 2007 - 13:52 #20
Det var index2
Avatar billede trp79 Nybegynder
07. januar 2007 - 13:58 #21
du har forskellige scopes på de to - er det med vilje?
Avatar billede mik28 Seniormester
07. januar 2007 - 14:00 #22
Hvorfor kan jeg ikke se sådan noget :-(
Avatar billede mik28 Seniormester
07. januar 2007 - 14:00 #23
Det virker nu
Avatar billede trp79 Nybegynder
07. januar 2007 - 14:02 #24
super :)
Avatar billede mik28 Seniormester
07. januar 2007 - 14:03 #25
pointene er dine
Avatar billede mik28 Seniormester
07. januar 2007 - 14:03 #26
Super fedt du gad hjælpe :-))
Avatar billede mik28 Seniormester
07. januar 2007 - 14:04 #27
nej
Avatar billede trp79 Nybegynder
07. januar 2007 - 14:04 #28
det var skam så lidt - jeg tillader mig at smide et svar. Jeg mener dog også at Medions har krav på lidt point - det han skriver er jo helt korrekt...
Avatar billede trp79 Nybegynder
07. januar 2007 - 14:05 #29
og det skulle så have været et svar...  "nej" hvad?
Avatar billede mik28 Seniormester
07. januar 2007 - 14:11 #30
er det okay hvis jeg deler pointene
Avatar billede trp79 Nybegynder
07. januar 2007 - 14:20 #31
Ja det er selvfølgelig helt fint
Avatar billede mik28 Seniormester
07. januar 2007 - 15:44 #32
Hvis jeg må spørge om en ting til vil jeg gerne vide hvordan jeg sikre en værdien er sat hvis jeg kalder index.jsp først
Avatar billede mik28 Seniormester
07. januar 2007 - 15:44 #33
index2 selvfølgelig
Avatar billede trp79 Nybegynder
07. januar 2007 - 16:44 #34
Jeg er ikke så godt inde i brugen af jsp-bean tags, så jeg ved ikke om det er muligt at angive en parameter der, der laver et tjek. Men ellers kan du jo bare lave et tjek i toppen af index2.jsp: tjek om minejavabeans.getVariable() er null, og hvis den er det, så redirecte til index.jsp.
Avatar billede trp79 Nybegynder
07. januar 2007 - 16:51 #35
Jeg googlede lige lidt og faldt over denne side.... http://www.java-tips.org/java-ee-tips/javaserver-pages/ Måske du kan finde noget her...
Avatar billede trp79 Nybegynder
07. januar 2007 - 16:54 #36
Der er iøvrigt et eksempel på brug af jsp:forward tag: http://www.java-tips.org/java-ee-tips/javaserver-pages/how-to-use-jsp-forward-tag-3.html
Avatar billede trp79 Nybegynder
07. januar 2007 - 17:05 #37
Du kan selvfølgelig selv lavet et tag som har den egenskab. Men ellers er en mulighed jo struts, hvor du har logic tags, og med disse kan tjekke om en værdi er sat. Derudover giver struts dig også MVC pattern, og derved en skøn adskilligelse.
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