"trazer" data formatada em JSP - RESOLVIDO

boa tarde pessoal, sei que há várias dicas nesse fórum sobre como fazer isso, porem estou bem travado, resolvi novamente voltar a estudar java web. E não consegui resolução para meu problema. Estou estudando video-aulas da T2Ti, nesse caso em questão preciso trazer a data formatada para o JSP. Porem nada vem dando certo… no banco o campo é um (DATE). E ao mostrar na JSP gostaria que viesse formatado (dd/MM/yyyy).

segue:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.List,
	br.com.sistemaweb.model.bean.Funcionario,
	br.com.sistemaweb.model.dao.FuncionarioDAO,
	java.util.Date,
	java.text.SimpleDateFormat,
	java.util.Calendar;" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<!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>SistemaWeb</title>
	<link rel="stylesheet" type="text/css" href="principal.css">
</head>

<body>
	<jsp:include page="cabecalho.jsp"></jsp:include>
	
	<div align="center">
		<h3>${mensagem}</h3>
		
		<table style="color: #004080; font-size: 10px; font-family: Tahoma, Verdana, Arial, Sans-Serif;" border="1" bordercolor="gray" cellpadding="5">
			<thead>
				<tr style="color: #004080; font-size: 12px; font-family: Tahoma, Verdana, Arial, Sans-Serif; font-weight: bold">
					<th>Cód.</th>
					<th>Nome</th>
					<th>Cargo</th>
					<th>Login</th>
					<th>Telefone</th>
					<th>Posse</th>
					<th>Posse</th>
					<th colspan="2">Editar</th>
				</tr>
			</thead>
			
			<%
				String style = "'color: navy; text-align: center; font-size:small;'";
				List<Funcionario> funcionarios = (List<Funcionario>)request.getAttribute("funcionarios");
				
				for(Funcionario funcionario: funcionarios) {
			%>
			
			<tr style=<%=style%>>
				<td><%=funcionario.getCodigo()%></td>
				<td><%=funcionario.getNome()%></td>
				<td><%=funcionario.getCargo()%></td>
				<td><%=funcionario.getLogin()%></td>			
				<td><%=funcionario.getFone()%></td>
				<td>
					<fmt:formatDate  value="${funcionario.posse}" type="DATE" pattern="dd/MM/yyyy"/>
				</td>
				<td>
					<a href='SistemawebController?cmd=editarFuncionario&codigo=<%=funcionario.getCodigo()%>'>Atualizar</a>
				</td>
				<td>
					<a href='sistemawebController?cmd=excluirFuncionario&codigo=<%=funcionario.getCodigo()%>'>Excluir</a>
				</td>
			</tr>
			
			<%
					style = style.equals("'color: navy; text-align: center; font-size:small;'") ?
					"'background-color: #68C; color: white; text-align: center; font-size:small;'" : 
					"'color: navy; text-aling: center; font-size:small;'";
				}
			%>
		</table>
	</div>
	
	<jsp:include page="rodape.jsp"></jsp:include>
</body>

</html>

Ja que você está usando scriplets(<%%>), você pode fazer isso com SimpleDateFormat, declare isso no seu scriplet e use como saída para sua data.

<%
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“dd/MM/YYYY”);
String style = “‘color: navy; text-align: center; font-size:small;’”;
List funcionarios = (List)request.getAttribute(“funcionarios”);
for(Funcionario funcionario: funcionarios) {
%>

– use aqui

<%simpleDateFormat.format(funcionario.posse)%>

ou você pode fazer um método numa classe auxiliar e chamar esse método ai na sua jsp da mesma forma, declare a classe auxiliar no scriptet e a use.

olá amigo, então, dessa forma ele manda eu acrescentar o (; ponto e virgula) para fechar o bloco, porém quando acrescento ele diz que (funcionario.posse )não é visível.

Creio que ele quis dizer para fazer assim

Pessoal, consegui resolver meu problema de formatacao de data da seguinte forma:
(no qual fica muito mais limpo e pratico o codigo, sem aquelas scriptlets)

<c:forEach var="f" items="${funcionarios}">
				        <tr>
				            <td><c:out value="${f.codigo}" /></td>
				            <td><c:out value="${f.nome}"/></td>
				            <td><c:out value="${f.cargo}"/></td>
				            <td><c:out value="${f.login}"/></td>
				            <td><c:out value="${f.senha}"/></td>
				            <td><c:out value="${f.fone}"/></td>
				           	<td><fmt:formatDate value="${f.posse}" type="date" pattern="dd/MM/yyyy" /> </td>
				            	
							<td><a href='SistemawebController?cmd=editarFuncionario&codigo=${funcionario.codigo}'>Atualizar</a></td>
							<td><a href='SistemawebController?cmd=excluirFuncionario&codigo=${funcionario.codigo}'>Excluir</a></td>
			</c:forEach>

Alguem teria alguma ideia para o problema a seguir, relacionado:

<td><a href='SistemawebController?cmd=editarFuncionario&codigo=${funcionario.codigo}'>Atualizar</a></td>
							<td><a href='SistemawebController?cmd=excluirFuncionario&codigo=${funcionario.codigo}'>Excluir</a></td>

de cara sei que esta errado, pois ele nao consegue (PEGAR) o codigo e redirecionar para a pagina com os valores em cada campo. Redireciona com todos os campos em branco.
Antes com as scriptlets funcionava bem:

<td><a href='SistemawebController?cmd=editarFuncionario&codigo=<%=funcionario.getCodigo()%>'>Atualizar</a></td>
<td><a href='sistemawebController?cmd=excluirFuncionario&codigo=<%=funcionario.getCodigo()%>'>Excluir</a></td>

Não existe a variável funcionario.
Vc renomeou para f.
Então é f.codigo;
f.isso;
f.aquilo.
De:
href='SistemawebController?cmd=editarFuncionario&codigo=${funcionario.codigo}'>Atualizar

Para:

ref='SistemawebController?cmd=editarFuncionario&codigo=${f.codigo}

1 curtida

boa tarde… meu caro…
“mestre de software”, na mosca! Vivendo e aprendendo…
Vou reforçar meus estudos com isso.
Te agradeço cara!
:smile:

1 curtida