Olá,
Estou desenvolvendo uma aplicação com JSP, usando a JSTL. Eu criei um Java Bean e estou tentando passar uma propriedade dele como parametro para uma folha de estilo XSLT. Não está dando certo. Inspecionando o valor da propriedade, descobri que ela esta voltando o que acho ser o endereco de memória da String, algo como “[Ljava.lang.String;@b4e29b”, e não o valor da String.
Estou usando Eclipse J2EE com Tomcat 6.0 embutido. O código do bean vai abaixo, sendo que ele já rodou sem problemas. Ou foi alguma alteração que eu fiz e que está escapando ou não sei.
public class DadosDePaginaDeIndice implements Serializable {
private String campo = Campos.DESCRITORES_LINHA,
comecaCom = "";
private int pagina = 1;
private IndiceDescricoes indice = new IndiceDescricoes();
public void setCampo(String campo) {
if (!UteisString.nulo(campo))
this.campo = campo;
}
public String getCampo() {
return campo;
}
public void setComecaCom(String comecaCom) {
if (comecaCom != null)
this.comecaCom = comecaCom;
}
public String getComecaCom() {
return comecaCom;
}
public void setPagina(int pagina) {
if (pagina >= 1)
this.pagina = pagina;
}
public int getPagina() {
return pagina;
}
public Document getDados() {
return indice.listar(campo, pagina, comecaCom);
}
}
A propriedade que está dando pau é a “campo”. O mais curioso é que “comecaCom” também é String mas funciona sem problemas. A seguir vai o codigo JSP:
<%
Reader estilo = new InputStreamReader(new FileInputStream(
new File(application.getRealPath("/xslt"), "indice.xsl")), "UTF-8");
request.setAttribute("_estilo", estilo);
%>
<jsp:useBean id="indice" class="org.lucca.ajax.beans.DadosDePaginaDeIndice">
<jsp:setProperty name="indice" property="*"/>
</jsp:useBean>
<x:transform doc="${indice.dados}" xslt="${_estilo}">
<x:param name="campo" value="${indice.campo}"></x:param>
<x:param name="pagina" value="${indice.pagina}"></x:param>
<x:param name="comecaCom" value="${indice.comecaCom}"></x:param>
</x:transform>
Obrigado pela ajuda,
Hel_all