Expression Language não está sendo exibido

2 respostas Resolvido
java
J

Olá,

Estou estudando JAVA WEB e estou tendo dificuldades para exibir uma simples EL na página abaixo. Todos os dados informados na página cadPessoa.jsp são salvos no banco, mas a página visualizaPessoa.jsp é exibida apenas com a palavra “oi” sem o nome da pessoa(EL). Por favor, alguém pode explicar porque não está funcionando?

Página visualizaPessoa.jsp:

`<body>
	Olá, ${pessoa.nome}
</body>`

Página cadPessoa.jsp

<body>
	<form action="mvc?logica=CadastraPessoa" method="post">
		<table align="center" cellspacing="5">
			<tr>
				<th colspan="2" align="center"><h2>Cadastro de pessoa</h2></th>
			</tr>
			<tr>
				<td>Nome:</td>
				<td><input type="text" name="nome"></td>
			</tr>
			<tr>
				<td>Sobrenome:</td>
				<td><input type="text" name="sobreNome"></td>
			</tr>
			<tr>
				<td>Rua:</td>
				<td><input type="text" name="rua"></td>
			</tr>
			<tr>
				<td>Bairro:</td>
				<td><input type="text" name="bairro"></td>
			</tr>
			<tr>
				<td>CEP:</td>
				<td><input type="text" name="cep"></td>
			</tr>
			<tr>
				<td colspan="2" align="right"><input type="submit"
					value="Cadastrar"></td>
			</tr>
		</table>
	</form>
</body>

Classe CadastraPessoa:

public class CadastraPessoa implements Logica {

@Override
public String executa(HttpServletRequest req, HttpServletResponse resp) throws Exception {
	Pessoa pessoa = new Pessoa();		
	pessoa.setNome(req.getParameter("nome"));
	pessoa.setSobreNome(req.getParameter("sobreNome"));
	pessoa.setRua(req.getParameter("rua"));
	pessoa.setBairro(req.getParameter("bairro"));
	pessoa.setCep(req.getParameter("cep"));		
	
	AgendaDao dao = new AgendaDao();
	dao.cadastraPessoa(pessoa);
	
	return "visualizaPessoa.jsp";
}

Classe AgendaDao:

public void cadastraPessoa(Pessoa pessoa) throws SQLException {
	String sql = "insert into pessoa" + "(nome, sobreNome, rua, bairro, cep)" + "values (?,?,?,?,?)";

	PreparedStatement stmt = connection.prepareStatement(sql);

	stmt.setString(1, pessoa.getNome());
	stmt.setString(2, pessoa.getSobreNome());
	stmt.setString(3, pessoa.getRua());
	stmt.setString(4, pessoa.getBairro());
	stmt.setString(5, pessoa.getCep());

	stmt.execute();
	stmt.close();

	JOptionPane.showMessageDialog(null, "Pessoa cadastrada com suceso!");

	connection.close();
}
E finalmente a classe <strong>Controller:</strong>

@WebServlet("/mvc")

public class ControllerServlet extends HttpServlet{
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
	String parametro = req.getParameter("logica");
	String nomeDaClasse = "br.com.sigma.logica."+ parametro;
	
	try{
		Class<?> classe = Class.forName(nomeDaClasse);
		Logica logica = (Logica) classe.newInstance();
		String pagina = logica.executa(req, resp);
		
		req.getRequestDispatcher(pagina).forward(req, resp);
	}catch(Exception e){
		throw new ServletException("A lógica de negócios causou uma exceção", e);
	}
}

2 Respostas

aix
Solucao aceita

Você esta retornando a página vazia, deveria por o objeto pessoa no request.setAtrbute…

J

RESOLVIDO!

Muitissíssimo obrigado! :v:

Criado 13 de março de 2016
Ultima resposta 14 de mar. de 2016
Respostas 2
Participantes 2