Bonjour,
J'ai un problème avec un DynaValidatorForm que je pré-remplis avant d'afficher mon formulaire : Pour les String pas de problème, tout fonctionne. En revanche j'essaye de passer un Vector dedans , et celui-ci se retrouve à null une fois sur la jsp (j'ai fait pas mal de tests). Comme la doc sur les DynaValidatorForm est presque inexistante, je suis pas mal embêté, peut être que les vectors ne sont pas supporté ?
mon test coté jsp
<bean:define id="test" property="formules" type="java.util.Vector"/>"
je me prend une erreur du genre : cannot define null bean "test"
ma property
1 2 3
| <form-property
name="formules"
type="java.util.Vector"/> |
mon action.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| public class IndicateurFormCreateDisplay extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) throws IOException,ServletException{
ApplicationIndicateurQualite AIQ = ApplicationIndicateurQualite.lancermetier();
HttpSession session = req.getSession();
DynaActionForm formulaire = (DynaActionForm) form;
session.removeAttribute("dbCIndic");
if (session.getAttribute("dbCIndic")==null){
Vector<ObjectifPolitiqueQualite> opqC = AIQ.getObjectifQualite();
Vector<DonneeBase> dbC = AIQ.getDonneeBase();
session.setAttribute("dbCIndic", dbC);
session.setAttribute("opqCIndic", opqC);
Formule firstFormule = new Formule();
Vector<Formule> formules = new Vector<Formule>();
formules.add(firstFormule);
formulaire.set("formules", formules);
}
return mapping.findForward("goform");
}
} |
Bien sûr cela fonctionne parfaitement si je met mon Vector en session. De plus, si je fait dans mon action
1 2 3 4 5 6
| Formule firstFormule = new Formule();
Vector<Formule> formules = new Vector<Formule>();
formules.add(firstFormule);
formulaire.set("formules", formules);
formules = (Vector<Formule>)formulaire.get("formules");
System.out.println(formules.size()); |
Je print bien "1". Donc c'est bien une fois sur la jsp que je n'ai plus de parametre.
Partager