Problème de tag :o - Java - Programmation
Marsh Posté le 22-01-2009 à 11:58:59
Alisteroid a écrit :
J'obtiens : NoSuchMethodException Une petite aide ? |
Normal, là tu cherches une méthode "getLibelle" sur la classe String ...
Ce qu'il faut que tu utilise, c'est quelque chose comme ça :
Code :
|
Edit PS :
Sinon, c'est quoi ton besoin parce que l'introspection, c'est pratique, ça permet de faire des trucs bien sioux mais ça a des inconvénients :
- il faut savoir jongler avec le Méta modèle
- ça complexifie la maintenance
- il est évident que les perfs sont moindre que si tu appelle le code directement
Marsh Posté le 22-01-2009 à 12:08:09
Et sinon, pour les classes qui respectent le formalisme JavaBean, il y a Apache Commons BeanUtils (qui évite de réinventer la roue).
Marsh Posté le 22-01-2009 à 14:11:20
Merci pour tes réponses,
En fait j'en chie pour mes tablib, j'arrive facilement à récupérer la valeur d'un de mes attributs :
<liste:column method="getIntitule">
<liste:entete name="Intitulé"/>
</liste:column>
La j'applique la méthode getIntitulé sur mon bean pour récuperer l'intitulé.
Mais si mon attribut est lui même un objet, je ne vois pas comment appeller cette methode sur cet attribut et non pas sur le bean, la méthode crade que j'ai trouvé pour l'instant c'est dans le bean par ex:
public String getConventionLibelle() {
return convention.getLibelle();
}
du coup la méthode est redondante
Bref je sais que j'explique pas très bien mais vous comprenez surement ou je veux en venir
Marsh Posté le 23-01-2009 à 12:03:30
Bon y a pas des tag standard ou je ne sais quoi pour faire un truc du genre :
<liste:column method="monattribut.getIntitule">
<liste:entete name="Intitulé"/>
</liste:column>
Pour que la méthode soit appellée sur l'attribut de mon bean au lieu de l'appeller sur le bean directement?
Comment est parsé le tag dans ce cas la?
Le problème est que j'utilise unqiuement des tags perso dévellopés par un mec qui est pas la et je suis completement bloqué, je trouve toujours pas de solution.
Lui il récupère la valeur en faisant :
getResultat = bean.getClass().getMethod(column.method, null);
columnContent = resultat.invoke(bean, null).toString();
Moi je veux pouvoir faire la même chose mais sur un attribut de mon bean que je donnerai dans le tag.
Marsh Posté le 23-01-2009 à 13:53:00
ReplyMarsh Posté le 24-01-2009 à 02:47:18
Mithfindel a écrit : Et sinon, pour les classes qui respectent le formalisme JavaBean, il y a Apache Commons BeanUtils (qui évite de réinventer la roue). |
Alisteroid a écrit : Y a des gens qui ont déja fait du java ici |
BeanUtils répond a ton besoin
(surtout ça je pense)
Code :
|
Code :
|
Avec un petit peu de chance, ça marche.
Marsh Posté le 26-01-2009 à 17:21:41
Merci beaucoup,
J'ai testé des heures , en vain
Code :
|
Code :
|
Et je me tape à chaque fois : java.lang.NoSuchMethodException: Unknown property 'id'
Marsh Posté le 26-01-2009 à 17:37:11
Alisteroid a écrit : Merci beaucoup,
|
Sur la class Tarif, il ne doit pas y avoir de getId(), par contre, sur l'objet tarif, il y a plus de chance qu'il y ait un getId()
Code : |
ça devrait (en théorie) marcher.
Marsh Posté le 26-01-2009 à 17:41:34
ReplyMarsh Posté le 26-01-2009 à 17:55:15
Alisteroid a écrit : Non je me tape une java.lang.ClassCastException |
Parce que tu cast un Integer en String (normalement, ça doit se voir dans la stacktrace)
Code :
|
Marsh Posté le 26-01-2009 à 21:34:07
ReplyMarsh Posté le 26-01-2009 à 21:41:56
Alisteroid a écrit : Et moi je prends ton exemple comme un gros débile en castant en string aussi |
C'était pour voir si tu suivais
Marsh Posté le 26-01-2009 à 21:45:19
Faut dire que ça fait 2 semaines que je me mets au java après 3 ans de php donc je suis excusé
Marsh Posté le 27-01-2009 à 10:52:57
Ca marche \o/ merci beaucoup j'ai réussi à corriger tout mon code, ça marche impec
Marsh Posté le 22-01-2009 à 10:58:42
Bonjour,
Je veux appeller dynamiquement une méthode sur un bean :
J'ai un string contenant le nom de mon bean et un autre contenant le nom de la methode
J'ai essayé avec :
J'obtiens : NoSuchMethodException
Une petite aide ?
(Je débute )
Message édité par Alisteroid le 23-01-2009 à 12:06:13