J2EE Struts problème <bean:write>
philog
-
kij_82 Messages postés 4260 Statut Contributeur -
kij_82 Messages postés 4260 Statut Contributeur -
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...
A voir également:
- J2EE Struts problème <bean:write>
- Bean mac - Télécharger - Traitement de texte
- Eclipse j2ee - Télécharger - Langages
- Différences entre JAVA et J2EE ? ✓ - Forum Java
- La =\= entre J2SE, J2EE et J2ME - Forum Programmation
- J2EE : EJB vs JavaBean ? Quelles différences ? ✓ - Forum Java
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")));