Probleme récupération de la valeur d'un html:select [Struts] - Java - Programmation
Marsh Posté le 27-12-2007 à 20:49:05
Oui, l'exception en fait vient du fait que j'essaye de loader plus loin un objet avec l'Integer que je recupere (entiteId). Comme je recupere 0 quoiqu'il arrive avec le code que j'ai mis au dessus, et qu'il n'existe pas un objet avec un id à 0, Hibernate me crache cette erreur.
Désolé, j'aurais du le préciser.
J'ai trouvé une méthode pour contourner le probleme, je ne déclare plus le select dans le form-bean, et je récupère la valeur grace au request.getParameter("enti_codeId.codeId" ); et ça fonctionne.
J'aimerai quand même bien trouvé la solution avec un form-bean.
Marsh Posté le 25-12-2007 à 12:43:17
Bonjour !
Tout d'abord joyeuses fêtes à tous
Passons aux choses sérieuses
Voilà le code qui me pose probleme :
<html:select name="domaine" property="enti_codeId.codeId" style="width: 300;">
<html:optionsCollection name="entites" label="nom" value="codeId" />
</html:select>
Comment récupérer coté métier la valeur sélectionnée dans le select ?
Sachant qu'un domaine est reliée à une entité par un many-to-one sur le champs "enti_codeId".
Ici, mon optionsCollection name="entites" correspond donc à la liste de toutes les entités, et mon select name="domaine" property="enti_codeId.codeId" sélectionne la bonne entité à sélectionner pour le domaine en cours au chargement de la page.
Voilà mon form-bean du struts-config :
<form-bean
name="form_test"
type="org.apache.struts.validator.DynaValidatorForm"
>
...
<form-property name="enti_codeId.codeId" type="java.lang.Integer" initial="" />
</form-bean>
et coté métier :
Integer entiteId = (Integer)formulaire.get("enti_codeId.codeId" );
J'obtiens cette erreur :
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.generali.hibernate.tables.Entites#0]
Si quelqu'un a une idée