Olá pessoal,
Estou tentando obter a string do html gerado em uma requisição com um responseWrapper.
A ordem de execução dos meus Filters está: SiteMeshFilterCustom -> VRaptorCustom.doFilter() …
Estou criando o responseWrapper dentro de um CustomFilterSiteMesh, vou mostrar o código:
[code]@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
System.out.println("req.getRequestURI(): " + req.getRequestURI());
ConpressionResponseWrapper responseWrapper = new ConpressionResponseWrapper(resp);
super.doFilter(request, responseWrapper, chain);
System.out.println("CONTENT:" + responseWrapper.getContent());
}[/code]
O output dos sysouts:
[code]req.getRequestURI(): /login
req.getRequestURI(): /WEB-INF/jsp/index/loginForm.jsp
CONTENT:
<script>
$(document).ready(function() { … });
</script>
<div id=“divFormularioLogin”>
<form action="/login" name=“form” method=“post”>
<div class=“field”>
<input type=“text” name=“usuario.email” title=“email” />
</div>
<div class="field">
<input type="password" name="usuario.senha" title="senha" />
</div>
<div class="contentCenter">
<button class="botao" type="submit">Entrar</button>
<a >Criar conta</a>
</div>
</form>
</div>
CONTENT:
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8” />
<title>My App</title>
<link type=“text/css” href="/stylesheets/all.min.css" rel=“stylesheet” />
<script type=“text/javascript” src="/javascripts/all.min.js"></script>
</head>
<body>
<div id=“wrapper”>
<div id=“headerWrapper”>
<div id=“login_menu”>
</div>
</div>
<div id="content">
<div id="validationBox">
<span id="caixaDeValidacao"></span>
<span id="caixaDeInformativos">
</span>
</div>
</div>
</div>
</body>
</html>
[/code]
Repare que:
Ele passa primeiro e duas vezes do primeiro sysout.
Depois ele passa as outras duas vezes no segundo sysout.
E detalhe, um outro comportamento do sitemesh que eu não entendi.
Ele não fez o merge entre minha jsp e meu decorator em apenas uma requisição… Precisou de duas requisições, uma para chamar o jsp e outra pra chamar o decorator.
Estou querendo pegar esse conteúdo completo para minificar meus html em tempo de execução… Não preciso fazer necessáriamente assim, se alguém quiser aconselhar uma outra forma, pode ser.
Obrigado!