J2EE Struts problème <bean:write>

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...
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour,

    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(&q­uot;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(&q­uot;nom"))); 
    

    1. Contributeur
      Bonjour,

      Quel sorte d'erreur est ce que tu as à la compilation, peux-tu mettre cette erreur ici pour qu'on la voit.
      Sans ça on ne pourra rien pour toi.
      1. bonjour
        chuis debutan avaec java struts et la ou j'etudi le prof ns oblige d'utilisé my sql et appach je les instalé g le vista et g des problem dans la compilation
        donc veuillez m'xpliqé d'ou arrive les problem et de koi me conseillez vous
        merci