displaytag, come integrare le caselle di controllo?
-
23-09-2019 - |
Domanda
Io uso displaytag su un fagiolo lista: utilisateurBean
. Ho bisogno di aggiungere una colonna su questa scheda per aggiungere una casella di controllo per la selezione di un elemento.
Pb: Con un look alla displaytag
cavalletti per il choixUtilisateur
proprietà nel chicco e non nel formBean
. C'è un modo per parlare puntoni / displaytag per mappare questa proprietà in forma? Non capisco il mix di strato di prestenation / strato di business che questo comporta.
Mi rendo conto che ho iterate sul fagiolo e che si guarda per la proprietà. Ma non ho capito la mappatura della proprietà decoratrice nel livello aziendale.
Il mio codice:
<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>
Il DecorateurCheckbox.java
per aggiungere casella di controllo per la mia scheda:
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;
}
...
}
Errore:
/Administration/acces.jsp. Eccezione: javax.servlet.ServletException: Errore durante la ricerca proprietà "choixUtilisateur" in tipo di oggetto "Xxx.UtilisateurBean".
Soluzione
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 è la proprietà del modulo e choixUtilisateur è la proprietà displaytag con il decoratore: jsp:
<display:column property="choixUtilisateur" title="modif"></display:column>