Imposible d'utiliser les javaBean

Discussions sur le développement de JSP, servlets, et Java en général.

Modérateur : Modérateurs

Avatar de l’utilisateur
laurentw
Membre
Membre
Messages : 33
Inscription : mer. 07 janv. 2004, 14:29
Localisation : Genève Suisse

Messagepar laurentw » dim. 11 janv. 2004, 15:42

Hello,

J'ai créé un class qui se trouve dans le rep WEB-INF/classes

Lorsque je l'appelle dans la page jsp, de la manière suivante :

<jsp:useBean id="commandeFruit" class="Fruit" />

la page plante au lancement :

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 13 in the jsp file: /index.jsp

Generated servlet error:
[javac] Since fork is true, ignoring compiler setting.
[javac] Compiling 1 source file
[javac] Since fork is true, ignoring compiler setting.
[javac] /usr/tomcat/jarkarta-tomcat-4.1.24/work/Standalone/localhost/music/index_jsp.java:50: cannot resolve symbol
[javac] symbol : class Fruit
[javac] location: class org.apache.jsp.index_jsp
[javac] Fruit commandeFruit = null;
[javac] ^



An error occurred at line: 13 in the jsp file: /index.jsp

Generated servlet error:
[javac] /usr/tomcat/jarkarta-tomcat-4.1.24/work/Standalone/localhost/music/index_jsp.java:52: cannot resolve symbol
[javac] symbol : class Fruit
[javac] location: class org.apache.jsp.index_jsp
[javac] commandeFruit = (Fruit) pageContext.getAttribute("commandeFruit", PageContext.PAGE_SCOPE);
[javac] ^



An error occurred at line: 13 in the jsp file: /index.jsp

Generated servlet error:
[javac] /usr/tomcat/jarkarta-tomcat-4.1.24/work/Standalone/localhost/music/index_jsp.java:55: cannot resolve symbol
[javac] symbol : class Fruit
[javac] location: class org.apache.jsp.index_jsp
[javac] commandeFruit = (Fruit) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "Fruit");
[javac] ^
[javac] 3 errors


Merci de m'aider !

Avatar de l’utilisateur
laurentw
Membre
Membre
Messages : 33
Inscription : mer. 07 janv. 2004, 14:29
Localisation : Genève Suisse

Messagepar laurentw » dim. 11 janv. 2004, 21:41

En fait, j'ai trouvé ma solution :


voici ce à quoi il faut faire attention :


Attention : les fichier *.class ne peuvent être appelé que s’il ont la ligne de déclaration package dedans !

1. Il faut en fait créer un package. La seule condition pour cela est d’ajouter au début du fichier *.java la ligne suivante :

package NomDuPackage;
2. Le fichier *.class compilé doit impérativement se trouver dans le répertoir suivant :
WEB-INF/classes/NomDuPackage/xxx.class
3. Le Bean sera ensuite utilisé de la manière suivante par inclusion dans une page jsp :

<jsp:useBean id="nomàchoisir" class="NomduPackage.xxx" />

où xxx est le nom du fichier *.class qui n’est pas forcémen le même que le nom du package.

Avatar de l’utilisateur
cpj1964
Nouveau membre
Messages : 2
Inscription : mer. 29 juin 2005, 15:30

Messagepar cpj1964 » mer. 29 juin 2005, 16:30

Bonjour ton message m'interresse beaucoup car j'ai le meme probleme.

j ai essaye ta solution mais cela ne marche pas j ai le message suivant

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 20 in the jsp file: /confirm.jsp

Generated servlet error:
[javac] Compiling 1 source file

C:\java\EASYJSP\jakarta-tomcat-4.1.29\work\Standalone\localhost\_\confirm_jsp.java:56: cannot resolve symbol
symbol : variable commandeFruit
location: class org.apache.jsp.confirm_jsp
out.print(commandeFruit.getPrix()*commandeFruit.getPoids() );
^



An error occurred at line: 20 in the jsp file: /confirm.jsp

Generated servlet error:
C:\java\EASYJSP\jakarta-tomcat-4.1.29\work\Standalone\localhost\_\confirm_jsp.java:56: cannot resolve symbol
symbol : variable commandeFruit
location: class org.apache.jsp.confirm_jsp
out.print(commandeFruit.getPrix()*commandeFruit.getPoids() );
^
2 errors


-------------------------------------------

Voila mes codes de depart

package Fruit;
public class Fruit {
private String nomFruit;
private int poids;
private String couleur;
private boolean isCitron;
private float prix;

public String getNomFruit(){
return this.nomFruit;
}

public void setNomFruit(String nom){
this.nomFruit=nom;
}

public int getPoids(){
return this.poids;
}

public void setPoids(int nombre){
this.poids=nombre;
}

public String getCouleur(){
return this.couleur;
}

public void setCouleur(String couleur){
this.couleur=couleur;
}

public float getPrix(){
return this.prix;
}

public void setPrix(float prix){
this.prix=prix;
}

public boolean isCitron(){
return this.isCitron;
}

public void setCitron(boolean isCitron){
this.isCitron=isCitron;
}
}

FruitsOrder.hml

<HTML>
<body>
<h1>Bon de commande de fruit (FruitOrder.html)</h1>

Fruit : Mangue<br>
Couleur : Orange<br>
Prix au kg : 5,95 Euros<br>
<form action="confirm.jsp" method="post">
Quantité : <input type="text" name="saisie_poids"><br>
<input type="submit" value="Valider la commande" >
</form>
</body>
</html>


<%-- confirm.jsp -->
<jsp:useBean id="commandeFruit" class="Fruit.Fruit" />

<jsp:setProperty name="commandeFruit" property="nomFruit" value="Mangue" />

<jsp:setProperty name="commandeFruit" property="couleur" value="Orange" />

<jsp:setProperty name="commandeFruit" property="prix" value="5.95" />

<jsp:setProperty name="commandeFruit" property="poids" param="saisie_poids" />
--%>

<HTML>
<body>
<h1>Votre commande de fruit (confirm.jsp)</h1>
<br>
Fruit : <jsp:getProperty name="commandeFruit" property="nomFruit"/><br>
Couleur : <jsp:getProperty name="commandeFruit" property="couleur" /><br>
Prix au kg : <jsp:getProperty name="commandeFruit" property="prix" /> Euros<br>
Quantité : <jsp:getProperty name="commandeFruit" property="poids" /><br>
Total : <%=commandeFruit.getPrix()*commandeFruit.getPoids() %> Euros<p></p>
<a href="FruitOrder.html">Revenir à la commande pour la modifier</a>
</body>
</html>

merci de ton aide


Revenir vers « Java »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité