Estou querendo pegar o conteudo de uma linha do displaytag e não estou sabendo como fazer, alguem poderia me ajudar?
Pelo que sei do displayTag, você pode recuperar o ID de cada registro.
Só que para isso, você deve ter um objeto decorator para cada data-list.
Exemplo:
<display:table name=“sessionScope.datalist” defaultsort=“0” defaultorder="ascending"
pagesize="30"
cellpadding=“0” cellspacing=“0” sort=“list"
id=“relatorios_displaytag_id"
decorator=”” width=“700”>
Classe Decorator
public class RelatorioDecorator extends BaseDecorator {
public RelatorioDecorator(){
super.setPath("relatoriosContabeis.relatorio");
super.setId("idRelatorioContabil");
}
}
Classe super
public class BaseDecorator extends TableDecorator{
/**
* Representa o nome do parâmetro que será responsável pela identificação,
* do registro. Ou seja, guardará o nome do parâmetro que será a chave, exemplo: “idRelatorio”
*/
private String id;
/**
* Caminho que o componente displaytag utilizará como base,
* para a geração dos Links nos data-lists.
*/
private String path;
/**
* Construtor padrão.
*/
public BaseDecorator(){
}
/**
* Seta o caminho a ser utilizado no link.
* @param path
*/
public final void setPath(final String path){
this.path = path;
}
/**
* Retorna o caminho que será utilizado como base<br>
* na geração dos links.
* @return String com o caminho que será utilizado pelo sistema
*/
public final String getPath(){
return path;
}
/**
* Seta o parâmetro que será utilizado como identificador do registro.
* @param id
*/
public final void setId(final String id){
this.id = id;
}
/**
* Recupera o parâmetro que será utilizado como identificador do registro.
* @return String contendo o nome do parâmetro que será utilizado como chave
*/
public final String getId(){
return id;
}
/**
* Recupera o parâmetro com o link de visualização em uma nova janela.
* @return String com o link formatado para visualização em nova janela.
*/
public final String getLinkVisualizar(){
return getBaseLink("Visualizar", "#", "window.open('" + getQueryString("/" + getPath()+"?tipoOperacao=ACOMPANHAMENTO_RELATORIO")+"')");
}
/**
* Recupera o parâmetro com o link direcionado para a mesma janela.
* @return String com o o parâmetro com o link direcionado para a mesma janela.
*/
public final String getLinkSelecionar(){
return getBaseLink("Selecionar", getQueryString("/" + getPath()+"?tipoOperacao=SETAR_DATACARGA"));
}
/**
* Recupera o link em formato HTM, sem função javascript de ONCLICK.
* @param link
* @param href
* @return String com o link em formato HTM, sem função javascript de ONCLICK
*/
protected final String getBaseLink(final String link, final String href){
return getBaseLink(link, href, null);
}
/**
* Recupera o link em formato HTM, com função javascript de ONCLICK.
* @param link
* @param href
* @param onClick
* @return String com o link em formato HTM, com função javascript de ONCLICK.
*/
protected final String getBaseLink(final String link, final String href, final String onClick){
StringBuffer buffer = new StringBuffer();
buffer.append("<a href=\"");
buffer.append(href);
buffer.append("\"");
if(onClick != null){
buffer.append(" onClick=\"");
buffer.append(onClick);
buffer.append("\"");
}
buffer.append(">");
buffer.append(link);
buffer.append("</a>");
return buffer.toString();
}
/**
* Recupera o contexto da da aplicação.
* @return String com o contexto a ser utilizado pelo Container
*/
protected final String getContextPath(){
return getHttpServletRequest().getContextPath();
}
/**
* Recupera o objeto HttpServletRequest.
* @return HttpServletRequest, objeto utilizado para identificar os requests executados <br>
* pelos usuários
*/
protected final HttpServletRequest getHttpServletRequest(){
return (HttpServletRequest)getPageContext().getRequest();
}
/**
* Recupera a String contendo o link gerado para os items do Menu.
* @param action
* @return String contendo o link gerado para os items do Menu
*/
protected final String getQueryString(final String action){
try{
Object object = getCurrentRowObject();
String idValue = BeanUtils.getProperty(object, id);
StringBuffer buffer = new StringBuffer();
buffer.append(getContextPath());
buffer.append(action);
buffer.append("&");
buffer.append(getId());
buffer.append("=");
buffer.append(idValue);
return buffer.toString();
}catch(NoSuchMethodException e){
throw new RuntimeException("Erro ao recuperar propriedade. ", e);
}catch(InvocationTargetException e){
throw new RuntimeException("Erro ao recuperar propriedade. ", e);
}catch(IllegalAccessException e){
throw new RuntimeException("Erro ao recuperar propriedade. ", e);
}
}
}
[]´s
Utilizei o seguinte na jsp:
listaUsuarios ->É uma lista contendo todos usuários cadastrados.
<display:table name="listaUsuarios" sort="list" defaultsort="1" pagesize="10"
requestURI="ListaUsuariosAction.mtw" export="false" decorator="br.com.ciclope.tag.getLinks" id="user" >
<display:column property="userId" title="${id}" sortable="true" style="width: 580px" />
<display:column property="userNome" title="${nome}" sortable="true" style="width: 580px"/>
<!-- Monta coluna de alterar e deletar passando o id do usuario com parametro na url-->
<display:column title="${opcoes}">
<a href="details.jsp?id=<jsp:getProperty name="user" property="userId"/>" title=<mtw:i18n key="coluna.editar"/>
<img src="images/edit.png" width=16 height=16 border=0></a>
|<a href="details.jsp?id=<jsp:getProperty name="user" property="userId"/>" title=<mtw:i18n key="coluna.deletar"/>
<img src="images/edittrash.png" width=16 height=16 border=0></a>
</display:column>
</display:table>