OVH Cloud OVH Cloud

bean et exception

5 réponses
Avatar
Thierry
Bonjour,
Je voudrais gerer l'erreur suivante, mais je n'y parviens pas.
org.apache.jasper.JasperException: For input string: "a"

Je m'explique :
J'ai un Bean qui a une propriété age :
public void setAge(int age) {
this.age = age;
}

J'ai une JSP
qui contient
...
<jsp:useBean id="bean0" scope="session" class="test.Personne" />
<jsp:setProperty name="bean0" property="*" />
....
Entrez une nouvelle valeur pour bean0.age : <input name="age">
La valeur de bean0.age est : <jsp:getProperty name="bean0" property="age" />
....

Je ne veux pas gerer la sasie en javascript.
Losque je saisie un lettre dans la zone age et que je soumet le formulaire
j'ai l'erreur : org.apache.jasper.JasperException: For input string: "a"
J' ai essayé un try catch dans la methode setAge() mais cela ne fonctionne
pas.

Auriez vous une explication sur la façon dont je doit gerer cette erreur ?

Merci
Thierry

5 réponses

Avatar
Guillaume Rosset
J ai peut-etre une explication mais j ai pas eu le temps de la tester :


Normalement tu peux recuperer les parametres d'une url
http://server/toto/abc.jsp?param1=value1&param2=value2 en faisant ce que tu
fais , c'est a dire

<jsp:setProperty name="bean0" property="*" />

dans ce cas param1 et param2 doivent etre des propriétés de bean0.

MAIS, tout ca marche parce que les parametres sont envoyés dans l'url, c'est
a dire "en clair" (c'est à dire méthode GET), or si tu les envoies a travers
un formulaire et que tu fais un "method=POST" les parametres ne sont plus
contenus dans l'Url, ils sont cachés dans le body de la requete et donc ton
bean ne peut pas les recuperer; ce qui pourrait expliquer ton message
d'erreur.

Tout ce que je viens de dire est evidemment valable dans le cas ou tu aurais
ecrit method=POST (et dans ce cas essaie avec method=GET) sinon ben je sais
pas :(




"Thierry" a écrit dans le message de news:
c6qgoi$mlg$
Bonjour,
Je voudrais gerer l'erreur suivante, mais je n'y parviens pas.
org.apache.jasper.JasperException: For input string: "a"

Je m'explique :
J'ai un Bean qui a une propriété age :
public void setAge(int age) {
this.age = age;
}

J'ai une JSP
qui contient
...
<jsp:useBean id="bean0" scope="session" class="test.Personne" />
<jsp:setProperty name="bean0" property="*" />
....
Entrez une nouvelle valeur pour bean0.age : <input name="age">
La valeur de bean0.age est : <jsp:getProperty name="bean0" property="age"
/>

....

Je ne veux pas gerer la sasie en javascript.
Losque je saisie un lettre dans la zone age et que je soumet le formulaire
j'ai l'erreur : org.apache.jasper.JasperException: For input string: "a"
J' ai essayé un try catch dans la methode setAge() mais cela ne fonctionne
pas.

Auriez vous une explication sur la façon dont je doit gerer cette erreur ?

Merci
Thierry




Avatar
Thierry
Merci Guillaume pour ton aide, mais avec le get, c'est pareil.

Thierry


"Guillaume Rosset" a écrit dans le message
de news: 409160a0$0$659$
J ai peut-etre une explication mais j ai pas eu le temps de la tester :


Normalement tu peux recuperer les parametres d'une url
http://server/toto/abc.jsp?param1=value1&param2=value2 en faisant ce que
tu

fais , c'est a dire

<jsp:setProperty name="bean0" property="*" />

dans ce cas param1 et param2 doivent etre des propriétés de bean0.

MAIS, tout ca marche parce que les parametres sont envoyés dans l'url,
c'est

a dire "en clair" (c'est à dire méthode GET), or si tu les envoies a
travers

un formulaire et que tu fais un "method=POST" les parametres ne sont plus
contenus dans l'Url, ils sont cachés dans le body de la requete et donc
ton

bean ne peut pas les recuperer; ce qui pourrait expliquer ton message
d'erreur.

Tout ce que je viens de dire est evidemment valable dans le cas ou tu
aurais

ecrit method=POST (et dans ce cas essaie avec method=GET) sinon ben je
sais

pas :(




"Thierry" a écrit dans le message de news:
c6qgoi$mlg$
Bonjour,
Je voudrais gerer l'erreur suivante, mais je n'y parviens pas.
org.apache.jasper.JasperException: For input string: "a"

Je m'explique :
J'ai un Bean qui a une propriété age :
public void setAge(int age) {
this.age = age;
}

J'ai une JSP
qui contient
...
<jsp:useBean id="bean0" scope="session" class="test.Personne" />
<jsp:setProperty name="bean0" property="*" />
....
Entrez une nouvelle valeur pour bean0.age : <input name="age">
La valeur de bean0.age est : <jsp:getProperty name="bean0"
property="age"


/>
....

Je ne veux pas gerer la sasie en javascript.
Losque je saisie un lettre dans la zone age et que je soumet le formulai
re


j'ai l'erreur : org.apache.jasper.JasperException: For input string: "a"
J' ai essayé un try catch dans la methode setAge() mais cela ne
fonctionne


pas.

Auriez vous une explication sur la façon dont je doit gerer cette erreur
?



Merci
Thierry








Avatar
captainpaf
"Thierry" a écrit dans le message de news:
c6qgoi$mlg$
Bonjour,
Je voudrais gerer l'erreur suivante, mais je n'y parviens pas.
org.apache.jasper.JasperException: For input string: "a"

Je m'explique :
J'ai un Bean qui a une propriété age :
public void setAge(int age) {
this.age = age;
}

J'ai une JSP
qui contient
...
<jsp:useBean id="bean0" scope="session" class="test.Personne" />
<jsp:setProperty name="bean0" property="*" />
....
Entrez une nouvelle valeur pour bean0.age : <input name="age">
La valeur de bean0.age est : <jsp:getProperty name="bean0" property="age"
/>

....

Je ne veux pas gerer la sasie en javascript.
Losque je saisie un lettre dans la zone age et que je soumet le formulaire
j'ai l'erreur : org.apache.jasper.JasperException: For input string: "a"
J' ai essayé un try catch dans la methode setAge() mais cela ne fonctionne
pas.

Auriez vous une explication sur la façon dont je doit gerer cette erreur ?

Merci
Thierry


Salut,


c'est normal, tu essayes de faire rentrée ton String dans un trop petit
emplacement alors du coup ça force ;).
Tu peux utiliser par exemple un bean de ce genre afin de controler la saisie
(tu peux l'améliorer...):

<code>
public class TonBean
{
private int age = -1;
private String lastError = "";

public void setAge(String age)
{
try
{
age = Integer.parseInt(strAge);

}
catch(NumberFormatException e)
{
age = -1;
lastError = "L'âge saisi est invalide";
}
}

public int getAge()
{
return age;
}

public String getLastError()
{
return lastError();
}
//...
</code>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.672 / Virus Database: 434 - Release Date: 28/04/2004

Avatar
Thierry
Merci beaucoup,
C'est exactement cela.
C'est le type du parametre qu'il fallait mettre en String

Thierry

"captainpaf" a écrit dans le message de news:
c6t06u$2md$

"Thierry" a écrit dans le message de news:
c6qgoi$mlg$
Bonjour,
Je voudrais gerer l'erreur suivante, mais je n'y parviens pas.
org.apache.jasper.JasperException: For input string: "a"

Je m'explique :
J'ai un Bean qui a une propriété age :
public void setAge(int age) {
this.age = age;
}

J'ai une JSP
qui contient
...
<jsp:useBean id="bean0" scope="session" class="test.Personne" />
<jsp:setProperty name="bean0" property="*" />
....
Entrez une nouvelle valeur pour bean0.age : <input name="age">
La valeur de bean0.age est : <jsp:getProperty name="bean0"
property="age"


/>
....

Je ne veux pas gerer la sasie en javascript.
Losque je saisie un lettre dans la zone age et que je soumet le
formulaire


j'ai l'erreur : org.apache.jasper.JasperException: For input string: "a"
J' ai essayé un try catch dans la methode setAge() mais cela ne
fonctionne


pas.

Auriez vous une explication sur la façon dont je doit gerer cette erreur
?



Merci
Thierry


Salut,


c'est normal, tu essayes de faire rentrée ton String dans un trop petit
emplacement alors du coup ça force ;).
Tu peux utiliser par exemple un bean de ce genre afin de controler la
saisie

(tu peux l'améliorer...):

<code>
public class TonBean
{
private int age = -1;
private String lastError = "";

public void setAge(String age)
{
try
{
age = Integer.parseInt(strAge);

}
catch(NumberFormatException e)
{
age = -1;
lastError = "L'âge saisi est invalide";
}
}

public int getAge()
{
return age;
}

public String getLastError()
{
return lastError();
}
//...
</code>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.672 / Virus Database: 434 - Release Date: 28/04/2004





Avatar
captainpaf
Tant mieux si je t'ai aidé. Par contre, j'ai fait une bourde, dans la
méthode setAge(), c'est une erreur de remettre à -1 l'age si la saisie est
invalide. L'age doit bien sûr garder sont ancienne valeur.
<code>
public void setAge(String age)
{
try
{
age = Integer.parseInt(strAge);
}
catch(NumberFormatException e)
{
// age = -1;
lastError = "L'âge saisi est invalide";
}
}
</code>