displaytag, comment intégrer des cases à cocher?
-
23-09-2019 - |
Question
J'utilise displaytag sur un grain de liste: utilisateurBean
. Je dois ajouter une colonne sur cet onglet pour ajouter une case à cocher pour sélectionner un élément.
Pb: Avec les jambes de force displaytag
recherche le choixUtilisateur
de la propriété dans le haricot et non dans le formBean
. Est-il possible de parler des entretoises / displaytag pour cartographier cette propriété sous la forme? Je ne comprends pas la combinaison de la couche prestenation / couche d'affaires que cela implique.
Je comprends que j'itérer sur le haricot et qu'il cherche la propriété. Mais je ne comprenais pas la mise en correspondance de la propriété décorateur dans la couche d'affaires.
Mon code:
<html:form action="/rechercheUtilisateur"
name="formRechercheUtilisateur"
decorator="org.displaytag.render.DecorateurCheckbox"
type="lan.poujoulat.osac.forms.FormRechercheUtilisateur">
...
<div align="center"><display:table style="width: 100%;"
class="mars" sort="list"
name="formRechercheUtilisateur.listeUtilisateurs"
id="formRechercheUtilisateur.listeUtilisateurs"
decorator="org.displaytag.render.DecorateurCheckbox"
cellspacing="4" cellpadding="2" pagesize="10"
requestURI="rechercheUtilisateur.do" export="true" >
<display:column title="id" property="id" sortable="true"
style="color: black;" headerClass="sortable"></display:column>
...
<display:column media="html" property="choixUtilisateur" title=" "></display:column>
...
</display:table></div>
</html:form>
Le DecorateurCheckbox.java
ajouter à mon onglet case à cocher:
public class DecorateurCheckbox extends TableDecorator{
...
public String getChoixUtilisateur()
{
String retour = "";
UtilisateurBean user= (UtilisateurBean) getCurrentRowObject();
int idUser ;
idUser = user.getId();
retour = "<input type='checkbox' name='formRechercheUtilisateur' property='choixUtilisateur' value='"+idUser+"' id='selectedArticle" + idUser + "' />";
return retour;
}
...
}
Erreur:
/Administration/acces.jsp. Exception: javax.servlet.ServletException: Erreur regardant la propriété « choixUtilisateur » dans le type d'objet "Xxx.UtilisateurBean".
La solution
public class DecorateurCheckbox extends TableDecorator{
public String getChoixUtilisateur()
{
String retour = "";
UtilisateurBean user= (UtilisateurBean) getCurrentRowObject();
int idUser ;
idUser = user.getId();
retour = "<input type='checkbox' name='utilisateurModif' property='choixUtilisateur' value='"+idUser+"' id='" + idUser + "' />";
return retour;
}
}
utilisateurModif est la forme la propriété et choixUtilisateur est la propriété displaytag avec le décorateur: jsp:
<display:column property="choixUtilisateur" title="modif"></display:column>