Recuperar objeto no arquivo jsp sem usar scriptlet

6 respostas Resolvido
G
`<%@ 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.

6 Respostas

D

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

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

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”);%>

D
Solucao aceita

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.

G

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

D

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.

J

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

Criado 7 de fevereiro de 2019
Ultima resposta 9 de fev. de 2019
Respostas 6
Participantes 3