DisplayTag, como integrar caixas de seleção?
-
23-09-2019 - |
Pergunta
Eu uso o DisplayTag em uma lista Bean: utilisateurBean
. Preciso adicionar uma coluna nesta guia para adicionar uma caixa de seleção para selecionar um elemento.
PB: com o displaytag
Struts procura a propriedade choixUtilisateur
no feijão e não no formBean
. Existe uma maneira de falar sobre suportes/exibição para mapear essa propriedade no formulário? Não entendo a mistura de camada de prestação/ camada de negócios que isso envolve.
Entendo que eu itera no feijão e que ele procura a propriedade. Mas não entendi o mapeamento da propriedade Decorator na camada de negócios.
Meu código:
<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>
o DecorateurCheckbox.java
Para adicionar a caixa de seleção à minha guia:
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;
}
...
}
Erro:
/Administration/acces.jsp. Exceção: javax.servlet.ServleTexception: Erro à procura de propriedades "Choixutilisateur" no tipo de objeto "xxx.utilisateururban".
Solução
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 é a propriedade do formulário e Choixutilisateur é a propriedade DisplayTag com o decorador: JSP:
<display:column property="choixUtilisateur" title="modif"></display:column>