Problemas com JSTL - [RESOLVIDO]

7 respostas
B

Bom Dia caros amigos.

Estou com um problema quanto a JSTL, as informações não estão aparecendo (basico não) devo estar esquecendo algum detalhe, mas com a minha inexperiência no assunto não estou conseguindo resolver. Por esse motivo peço a ajuda de vocês.

A minha dúvida é basicamente essa:

Quando a página JSP é chamada, automaticamente é estartado o doGet do Servlet, para valorização das variáveis?
Peço isso porque estou fazendo a valorização automática no Servlet, como abaixo.

package servlets;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import beans.EmpregadoBean;
import beans.EmpresaBean;
import beans.PessoaBean;

public class PropriedadesBeans extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public PropriedadesBeans() {
		super();
		System.out.println("Teste PropriedadesBean");
	}
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		System.out.println("doGet");
		PessoaBean pessoa = new PessoaBean("José Celso", "Freire");
		EmpresaBean empresa = new EmpresaBean("Unesp", "Ensino Superior");
		EmpregadoBean empregado = new EmpregadoBean(pessoa, empresa);
		request.setAttribute("empregado", empregado);
		RequestDispatcher dispatcher = request.getRequestDispatcher("/pages/PropriedadesBeans.jsp");
		dispatcher.forward(request, response);
	}
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException 
			{ 
				System.out.println("doPost");
			}
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>EL: Acesso a Propriedades de Javabeans</title>
</head>
<body>
<h3>EL: Acesso a Propriedades de Javabeans</h3>
<ul>
	<li><b>Nome:</b> ${empregado.pessoa.nome}
	<li><b>Sobrenome:</b> ${empregado.pessoa.sobrenome}
	<li><b>Nome da Empresa:</b> ${empregado.empresa.nomeEmpresa}
	<li><b>Área:</b> ${empregado.empresa.area}
</ul>
</body>
</html>

7 Respostas

M

Sim o doGet é chamado, o problema é como vc tá fazendo essa chamada no web.xml ou em alguma página de redirect.

B

Então markin1, eu estou fazendo o redirect no index.jsp da seguinte forma:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>JSTL</title>
</head>
<body>
	<h1 style="color:blue">Curso SIW - JSTL - Aula 09</h1>
	<a href="pages/AcessoViaEscopo.jsp">Exemplo 01 - Acessando dados via escopo</a><br />
	<a href="pages/PropriedadesBeans.jsp">Exemplo 02 - Acessando propriedades via JavaBeans</a><br />
</body>
</html>

E meu web.xml está assim:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" 
version="2.5">
  <display-name>AulaWeb09</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>AcessoViaEscopo</display-name>
    <servlet-name>AcessoViaEscopo</servlet-name>
    <servlet-class>servlets.AcessoViaEscopo</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AcessoViaEscopo</servlet-name>
    <url-pattern>/AcessoViaEscopo</url-pattern>
    <url-pattern>/teste</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>PropriedadesBeans</display-name>
    <servlet-name>PropriedadesBeans</servlet-name>
    <servlet-class>servlets.PropriedadesBeans</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>PropriedadesBeans</servlet-name>
    <url-pattern>/PropriedadesBeans</url-pattern>
    <url-pattern>/teste</url-pattern>
  </servlet-mapping>
</web-app>
M

onde está definido PropriedadesBeans.jsp no seu web.xml?

B

Desculpa markin1, mas não entendi a sua pergunta.

Não seria essa parte a resposta?

PropriedadesBeans PropriedadesBeans servlets.PropriedadesBeans PropriedadesBeans /PropriedadesBeans /teste

Esse processo todo até mostra a página, mas sem os valores.

M

ah é isso mesmo, não tinha visto… então… agora vc precisa arrumar o teu link ao invés de pages/PropriedadesBeans.jsp vc coloca /PropriedadesBeans

B

Cara… MUITO obrigado.

Sabia que era alguma coisa muito besta. Valeu mesmo pela ajuda.

B

Só pra especificar como arrumar o erro...

Tem que mudar o index.jsp do projeto para abaixo.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>JSTL</title>
</head>
<body>
	<h1 style="color:blue">Curso SIW - JSTL - Aula 09</h1>
	<a href="AcessoViaEscopo">Exemplo 01 - Acessando dados via escopo</a><br />
	<a href="PropriedadesBeans">Exemplo 02 - Acessando propriedades via JavaBeans</a><br />
</body>
</html>

Ai, o index já chamará o servlet diretamente, e o JSTL funcionará.

Criado 7 de julho de 2010
Ultima resposta 7 de jul. de 2010
Respostas 7
Participantes 2