mano.pp
Dezembro 25, 2007, 11:52pm
#1
Oi pessoal estava editando um servlet de saída mas no firefox sai em codigo e não inderizar na browser, em compesação o IE 7.0 mostra a tabela com os nomes normalmente. Vocês já deparou com esta cituação ou melhor e Bug do Firefox 2.0.0.11???
<html> <head></head> <table border='1' > <tr><th>Nome</th><th>Codigo</th></tr><tr><td>Eu teste</td></tr><tr><td>Teste</td></tr><tr><td>Tu Teste</td></tr><tr><td>Teste</td></tr><tr><td>Você Teste</td></tr></table></body> </html>
Estranho, o firefox não é tão fresco para isso. Testei esse html e funcionou aqui, mesmo faltando abrir a tag body. Teste isso e comprove.
Até!
muda o content type para text/html:
response.setContentType("text/html");
mano.pp
Dezembro 26, 2007, 1:40am
#4
não entedir onde devo usar ???
response.setContentType("text/html");
o codigo e esse:
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
Fachada sistema = Fachada.getInstancia();
Collection<Cliente> lista = null;
try {
lista = sistema.listarCliente();
Iterator<Cliente> i = lista.iterator();
PrintWriter saida = resp.getWriter();
saida.write("<html> " +
" <head></head> " +
" <table border='1' >" +
" <tr><th>Nome</th><th>Codigo</th></tr>");
while(i.hasNext()) {
Cliente temp = i.next();
saida.write("<tr><td>" + temp.getNome() + "</td></tr>");
}
saida.write("</table></body>" +
" </html>" );
} catch (ConectarException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
aqui…
[code]
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
Fachada sistema = Fachada.getInstancia();
Collection<Cliente> lista = null;
try {
lista = sistema.listarCliente();
Iterator<Cliente> i = lista.iterator();
PrintWriter saida = resp.getWriter();
saida.write("<html> " +
" <head></head> " +
" <table border='1' >" +
" <tr><th>Nome</th><th>Codigo</th></tr>");
while(i.hasNext()) {
Cliente temp = i.next();
saida.write("<tr><td>" + temp.getNome() + "</td></tr>");
}
saida.write("</table></body>" +
" </html>" );
} catch (ConectarException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} [/code]
Coloque um flush no final também após de saida.write("</table></body>" + " </html>" );
saida.write("</table></body>" +
" </html>" );
saida.flush();
[quote=leonardom]Coloque um flush no final também após de saida.write("</table></body>" + " </html>" );
saida.write("</table></body>" +
" </html>" );
saida.flush();
[/quote]
Use saida.close() ao invés do flush(). O close já vá fazer o flush automaticamente.
Até mais!
mano.pp
Dezembro 26, 2007, 1:43pm
#8
Boa Tarde…
Agradeço muito a ajuda de vocês. Mas não entender porque usar :
[u] [b]saida.flush();[/b][/u]
[u][b]saida.close();[/u][/b][size=18]
Isto tem haver com segurança com servilet ou é só pra fechar a saida em html????
Mas deu certo a dica que vocês passaram....
Pedrosa
Dezembro 26, 2007, 3:21pm
#9
Não seria mais fácil passar essa lista no request e montar o html no seu devido lugar o JSP?
mano.pp
Dezembro 27, 2007, 1:07am
#10
Pedrosa, como é que faz isto não sei relacionar um resultado de servlet com JSP???
se você poder posta como faz isto agradeço, pois a unica forma de mostra um resultado que sei é este…
Pedrosa
Dezembro 27, 2007, 11:18am
#11
Simples passe sua lista no request e monte no JSP:
public void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
RequestDispatcher rd;
request.setAttribute("suaLista",sistema.listarCliente());
rd = getServletContext().getRequestDispatcher("/SuaJSP.jsp");
rd.forward(request, response);
}
No JSP você pode usar o JSTL com a tag foreach para montar essa lista:
<c:forEach var="lista" items="${suaLista}">
${lista.codigo}">
${lista.nome}
</c:forEach>
Fica mais limpo, e se não quiser fazer esse foreach olha a displaytag ela monta os resultados de forma mais profissional:
http://displaytag.homeip.net/displaytag-examples-1.1/example-pse.jsp
Onde poderia ter um JSP assim:
<display:table requestURI="SuaServlet?acao=paginar" name="${suaLista}" uid="suaLista" class="simple" pagesize="10" export="false">
<display:column property="codigo" title="Codigo"/>
<display:column property="nome" title="Nome"/>
</display:table>
mano.pp
Dezembro 28, 2007, 1:46am
#12
Pedrosa… Foi muito boa sua explicação e logico que desta forma e melhor programa o codigo fico muito mas limpo. apesar que no segundo exemplo fiquei em duvida so bre a parte do codigo:
[quote]requestURI=“SuaServlet?acao=paginar ”[code]
tem que ser assim ou paginar e jsp??? que vai receber.
mesmo assim agradeço pela forma…