Criei uma variável String xmlImpresso (que tem o formato XML após o uso da biblioteca XStream) e gostaria de imprimi-la em uma página JSP.
Eu consigo imprimir no console mas quando tento imprimir na página ela não vem com as tags. Se possível gostaria de não ter q criar um arquivo externo.
Tu tem que escapar o xml para as tags aparecem. Veja: https://www.tutorialspoint.com/jsp/jstl_function_escapexml.htm
Pois eh. Mas pelo que vi, desse jeito, seria algo similar a recriar o xml na mão. Não entendi não…
Se eu tiver muitas tags vai ser algo muito trabalhoso.
Vc quer imprimir o xml na tela para que as tags sejam apresentadas? Se sim, não tem trabalho, basta passar a string com o xml para a função fn:escapeXml. O xml deverá ser impresso na tela.
Cara, não entendi. Como eu faria no exemplo a seguir?
Tenho uma variável string chamada xml com já todo o xml dentro dela.
Tenho em uma página JSP o seguinte código:
<%
String nome = “nome”;
String funcao = “funcao”;
XStream xstream = new XStream();
Mensagem mensagem = new Mensagem(nome, funcao);
String xml = xstream.toXML(mensagem);
%>
E o taglib dá erro.
<%@ taglib uri = “http://java.sun.com/jsp/jstl/core” prefix = “c” %>
<%@ taglib uri = “http://java.sun.com/jsp/jstl/functions” prefix = “fn” %>
Hmmm, scriptlet eh brabo, mas dá para tentar isso:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn" %>
<%
String nome = "nome";
String funcao = "funcao";
XStream xstream = new XStream();
Mensagem mensagem = new Mensagem(nome, funcao);
String xml = xstream.toXML(mensagem);
pageContext.setAttribute("xml", xml);
%>
<p>${fn:escapeXml(xml)}</p>
Ele não aceita. Dá erro tanto nas duas linhas lá de cima (taglib) como na última.
Qual erro? (sempre que algum erro acontecer durante uma ajuda, já responda com o erro que aconteceu).
Editei o código do exemplo que postei, pq as aspas estavam diferentes e isso pode causar erro na JSP.
Adicionei a dependência abaixo e mesmo assim a última linha está dando problema.
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Erro:
“The function fn:escapeXml is undefined”
Opa, deu certo!
Ele estava encontrando erro nos comentários. Apaguei e rodou.
Mas uma última coisa.
O formato. Está vindo um tripão.
Não teria como identar isso?
Tu pode tentar usar a tag <pre>:
<pre>${fn:escapeXml(xml)}</pre>
Mas ele melhora a visualização, mas não faz a identação.