J2EE Struts problème <bean:write>
philog
-
kij_82 Messages postés 4102 Date d'inscription Statut Contributeur Dernière intervention -
kij_82 Messages postés 4102 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voila je suis débutant en J2EE avec Struts + Hibernate et je n'arrive pas à afficher un objet user dans ma page jsp en utilisant <bean:write>
J'ai une erreur type:
org.apache.jasper.JasperException: Cannot find bean: "usa" in scope: "session"
Voici le code de ma page jsp:
Code :
<bean:define id="usa_id" name="usa" scope="session" type="test.javabeans.Usager"/>
<bean:write name="usa_id" property="nom"/><br>
<bean:write name="usa_id" property="prenom"/><br>
et le code de mon UsagerAction
Code :
public class UsagerAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception{
UsagerDAO user = new HibernateDAOFactory().getUsagerDAO();
DynaValidatorForm dynaForm = (DynaValidatorForm) form;
request.getSession().setAttribute("usa",user.findUsagerDAO(dynaForm.getString("nom")));
return mapping.findForward("affiche");
}
}
J'ai déja testé un insert et un affichage complet de ma table: ca fonctionne
Par contre, avec ma méthode findUsagerDAO(...) qui me retourne un objet type Usager, je n'arrive pas à l'afficher...?
Je dois surement faire une erreur dans la déclaration de mon <bean:write> ou dans l'envoi de mon objet user....
Si quelqu'un à une solution ? merci d'avance...
Voila je suis débutant en J2EE avec Struts + Hibernate et je n'arrive pas à afficher un objet user dans ma page jsp en utilisant <bean:write>
J'ai une erreur type:
org.apache.jasper.JasperException: Cannot find bean: "usa" in scope: "session"
Voici le code de ma page jsp:
Code :
<bean:define id="usa_id" name="usa" scope="session" type="test.javabeans.Usager"/>
<bean:write name="usa_id" property="nom"/><br>
<bean:write name="usa_id" property="prenom"/><br>
et le code de mon UsagerAction
Code :
public class UsagerAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception{
UsagerDAO user = new HibernateDAOFactory().getUsagerDAO();
DynaValidatorForm dynaForm = (DynaValidatorForm) form;
request.getSession().setAttribute("usa",user.findUsagerDAO(dynaForm.getString("nom")));
return mapping.findForward("affiche");
}
}
J'ai déja testé un insert et un affichage complet de ma table: ca fonctionne
Par contre, avec ma méthode findUsagerDAO(...) qui me retourne un objet type Usager, je n'arrive pas à l'afficher...?
Je dois surement faire une erreur dans la déclaration de mon <bean:write> ou dans l'envoi de mon objet user....
Si quelqu'un à une solution ? merci d'avance...
Configuration: Windows XP Internet Explorer 7.0
A voir également:
- J2EE Struts problème <bean:write>
- Bean mac - Télécharger - Traitement de texte
- Télécharger J2EE ✓ - Forum Programmation
- Architecture J2EE - Forum Programmation
- Java - J2EE - Forum Java
- Recuperer la valeur selectionnée avec struts - Forum Programmation
3 réponses
Bonjour,
Pour ma part j'ai plus l'habitude d'utiliser <nested:write> plutot que <bean:write>
Si tu essai de remplacer :
Par :
ça donne quoi ?
Sinon, il est peut être possible que la fonction findUsagerDAO() retourne la valeur null (non trouvé par rapport à ce que retourne dynaForm.getString("nom")) et du coup ton bean n'est pas instancié en session.
Pour vérifier ça essai de mettre une trace du genre dans ta fonction :
Pour ma part j'ai plus l'habitude d'utiliser <nested:write> plutot que <bean:write>
Si tu essai de remplacer :
<bean:define id="usa_id" name="usa" scope="session" type="test.javabeans.Usager"/> <bean:write name="usa_id" property="nom"/><br> <bean:write name="usa_id" property="prenom"/><br>
Par :
<nested:present name="usa">
<nested:write name="usa" property="nom"/>
<nested:write name="usa" property="prenom"/>
</nested:present>
ça donne quoi ?
Sinon, il est peut être possible que la fonction findUsagerDAO() retourne la valeur null (non trouvé par rapport à ce que retourne dynaForm.getString("nom")) et du coup ton bean n'est pas instancié en session.
Pour vérifier ça essai de mettre une trace du genre dans ta fonction :
if ( user.findUsagerDAO(dynaForm.getString("nom")) == null )
System.out.println("NOT FOUND");
request.getSession().setAttribute("usa",user.findUsagerDAO(dynaForm.getString("nom")));