Recuperar objeto no arquivo jsp sem usar scriptlet

   `<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ taglib prefix=“jstl-core” uri=“http://java.sun.com/jsp/jstl/core” %>

<%@ taglib prefix=“jstl-formatting” uri=“http://java.sun.com/jsp/jstl/fmt” %>

<title>Alteracao do contato</title>



<style>



    input {



        display: block;



    }



</style>

<jstl-core:import url=“cabecalho.jsp”/>

<%

Contato contato = (Contato) request.getAttribute("contato");

%>

<input type="hidden" name="id" value="<%=contato.getId()%>">



Nome:<input type="text" name="nome" value="<%=contato.getNome()%>"/>



Endereco:<input type="text" name="endereco" value="<%=contato.getEndereco()%>"/>



Email:<input type="text" name="email" value="<%=contato.getEmail()%>"/>



Data nascimetno<input type="text" name="dataNascimento"



                      value="<jstl-formatting:formatDate value="<%=contato.getDataNascimento().getTime()%>" pattern="dd/MM/yyyy"/>">



<input type="submit" value="Alterar">

<jstl-core:import url=“rodape.jsp”/>

`

Ola, criei esse topico por nao encontrar nada semelhante aqui no site do guj, nem na internet. O codigo acima recupera um atributo chamado “contato” pendurado no request por uma Servlet. Quero saber se existe outra forma de recuperar esse objeto e utilizar seus atributos sem usar os scriptlets e utilizando ao inves disso tags jstl ou jsp. Tentei usar a tag jsp:useBean/ porem ao tentar acessar os valores dos atributos usando EL nao saiu nenhum valor nos campos do formulario. Alguem sabe essa forma alternativa? Desde ja agradeco.

Está usando jstl, certo? Então vai de expression language, o famoso EL:

Email:<input type="text" name="email" value="${contato.email}"/>

E como faco pra recuperar o atributo “contato” usando tags? Dessa forma que voce demonstrou nao funcionou aqui usando o scriptlet:
<%Contato contato = (Contato) request.getAttribute(“contato”);%>

Você não precisa.
O Expression Language vai acessar a todos os níveis de possíveis escopos: página, request, sessão e aplicação.
Basta você colocar a referência ao objeto, no formato:

${objeto.atributo}

Obviamente, a classe precisa ter os atributos com o nome inserido e, principalmente, seus getters adequados.

1 curtida

Interessante essa caracteristica da EL, nao conhecia esse possibilidades de escopo. Funcionou perfeitamente. Obrigado.

Embora seja uma tecnologia bem antiga (JSTL e EL, assim como Struts 1 foi lançada, se bem me lembro, no ano 2000) é uma tecnologia muito boa.
Nem todos os frameworks MVC web java descendem dele, mas, certamente, os conceitos que o JSTL aplica foram fundamentais para os novos desenvolvimentos.

2 curtidas

Concordo, do pouco que trabalhei com Java, JSTL e EL já foram suficientes pra processar HTML no lado servidor, mesmo com Spring MVC.