Consegui resolver examinando este tópico :
o problema era bem parecido, eu incrementei a solução com o comando "setProperty " na JSP.
agradeço a todos que me ajudaram.
Pessoal, !
Eu tenho pouco tempo de experiencia com java, estou com problema onde tenho uma JSP (cadastrar) que valida informações de campos, o problema ocorre quando gera uma alguma mensagem em qualquer campo (por alguma falha minha) quando retorno para o FORM da JSP todos os campos ficam vazios.
Segue os codigos JSP, Servlet e Javabeans envolvidos no problema.
eu não uso framework.
Por favor alguem pode me ajudar?
pessoal pesso perdão por não anexar os arquivos dos codigos porque esta ocorrendo um erro quando tento atachar os arquivos neste tópico.
segue os códigos JSP, Servlet e Javabeans
JSP:
<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import = "java.util.Date,java.text.SimpleDateFormat,java.text.ParseException"%>
<c:import url="cabecalho_noticias.jsp"/>
<jsp:useBean id="noticia" class="br.com.noticiasWeb.modelo.javaBeans.Noticia" scope="request">
</jsp:useBean>
<%-- <c:if test="${param.enviado}" >
<%
String dateStr = request.getParameter("data_noticia_DMA");
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
Date dt_result = formater.parse(dateStr);
out.println(dt_result);
String wdt_AMD = dt_result.toString() ;
//noticia.setData_noticia_DMA(dt_result);
//request.getParameter("data_noticia_DMA");
out.println(wdt_AMD);
noticia.setData_noticia_DMA(dt_result);
request.setAttribute("noticia.data_noticia_DMA",noticia.getData_noticia_DMA());
%>
</c:if> --%>
<%-- <jsp:setProperty name="noticia" property="*" /> --%>
<form action="ServletController" method="post" >
<c:if test="${param.enviado}" >
<c:if test="${empty noticia.data_noticia_DMA}" var="semData_noticia"></c:if>
<c:if test="${empty noticia.id_usuario}" var="semId_usuario"></c:if>
<c:if test="${empty noticia.titulo_manchete}" var="semTitulo_manchete"> </c:if>
<c:if test="${empty noticia.materia}" var="semMateria"> </c:if>
</c:if>
<input type="hidden" name="enviado" value="true" />
<h3> Inclusão de noticia</h3>
<table>
<tr>
<td><b> Data da noticia </b> </td>
<td><input type="text" name="data_noticia_DMA" id="data_noticia_DMA"
<fmt:formatDate value="${noticia.data_noticia_DMA}"
type="date" dateStyle="short" pattern="dd/MM/yyyy"/>
<%-- value="<fmt:formatDate value="${noticia.data_noticia_DMA.time}" --%>
</td>
<td>
<c:if test="${semData_noticia}"><small>
<font color="red">Data da noticia deve estar preenchida corretamente: DD/MM/AAAA!</font>
</small>
</c:if>
</td>
</tr>
<tr>
<td><b> Autor </b> </td>
<td> <input type="text" name="id_usuario" id="id_usuario"
value="<c:out value="${noticia.id_usuario}"> </c:out>"
size="10"/> </td>
<td>
<c:if test="${semId_usuario}"><small>
<%-- <C:if test="${param.enviado} && ${empty noticia.id_usuario}"> --%>
<font color="red">Codigo do Autor deve estar preenchido!</font></small>
</c:if>
</td>
</tr>
<tr>
<td><b> Manchete </b> </td>
<td> <input type="text" name="titulo_manchete" id="titulo_manchete"
value="<c:out value="${noticia.titulo_manchete}"> </c:out>"
size="60"/>
</td>
<td>
<c:if test="${semTitulo_manchete}"><small>
<font color="red">Titulo da manchete deve estar preenchido!</font></small>
</c:if>
</td>
</tr>
<tr>
<td><b> Noticia </b> </td>
<td> <textarea rows="10" cols="100" name="materia"
value="<c:out value="${noticia.materia}"></c:out>" >
</textarea>
</td>
<td>
<c:if test="${semMateria}"><small>
<font color="red">Materia deve estar preenchido!</font></small>
</c:if>
</td>
</tr>
</table>
<input type="submit" value="Gravar" />
</form>
<c:import url="rodape_noticias.jsp" />
Servlet:
package br.com.noticiasWeb.controler;
//import br.com.noticiasWeb.controler.consistencias.Classe_consiste_noticia;
import br.com.noticiasWeb.modelo.dao.NoticiaDAO;
import br.com.noticiasWeb.modelo.javaBeans.Noticia;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
//import java.util.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Wanderlei
*/
@WebServlet(name = "ServletController", urlPatterns = {"/ServletController"})
public class ServletControler extends HttpServlet {
/**
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//super.service(request, response);
/* TODO output your page here. You may use following sample code. */
NoticiaDAO nDAO = new NoticiaDAO();
Noticia noticia = new Noticia();
System.out.println("#1 servlet inicio ");
try {
System.out.println("#2 servlet inicio ");
if (request.getParameter("id_usuario").length() == 0
|| request.getParameter("data_noticia_DMA").length() == 0
|| request.getParameter("titulo_manchete").length() == 0
|| request.getParameter("materia").trim().equals("")) {
if (request.getParameter("id_usuario").length() == 0) {
noticia.setId_usuario(null);
}
if (request.getParameter("data_noticia_DMA").length() == 0) {
noticia.setData_noticia_DMA(null);
}
if (request.getParameter("titulo_manchete").length() == 0) {
noticia.setTitulo_manchete("");
}
if (request.getParameter("materia").trim().equals("")) {
noticia.setMateria(null);
}
System.out.println("1 reenvia_Formulario_inclusao ");
reenvia_Formulario_inclusao(noticia, request, response);
return;
}
System.out.println("$ dt noticia: " + request.getParameter("data_noticia_DMA"));
DateFormat wf_dma1 = new SimpleDateFormat("dd/MM/yyyy");
java.sql.Date Data_amd = new java.sql.Date(wf_dma1.parse(request.getParameter("data_noticia_DMA")).getTime());
String Data_YMD_str = new SimpleDateFormat("yyyy-MM-dd").format(Data_amd);
System.out.println("# data_ymd_str= " + Data_YMD_str + "# data_amd= " + Data_amd);
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date wdt_AMD = (Date) formatter.parse(request.getParameter("data_noticia_DMA"));
noticia.setData_noticia_DMA(wdt_AMD);
noticia.setId_usuario(Integer.parseInt(request.getParameter("id_usuario")));
noticia.setTitulo_manchete(request.getParameter("titulo_manchete"));
noticia.setMateria(request.getParameter("materia"));
System.out.println("#4 data_noticia= " + noticia.getData_noticia_DMA());
if (noticia.getData_noticia_DMA() == null
|| noticia.getId_usuario() == null
|| noticia.getId_usuario() == 0
|| noticia.getTitulo_manchete() == null
|| "".equals(noticia.getTitulo_manchete().trim())
|| noticia.getMateria() == null
|| "".equals(noticia.getMateria().trim())) {
System.out.println("2 reenvia_Formulario_inclusao ");
reenvia_Formulario_inclusao(noticia, request, response);
return;
}
SimpleDateFormat dt_ms = new SimpleDateFormat("yyyy-MM-dd HH':'mm':'ss'.'sssSSS");
// System.out.println("#00 dt_ms= " + dt_ms);
String s_dat = dt_ms.format(new java.util.Date());
String st_hora = s_dat.substring(11, 19);
String dtstr = (Data_YMD_str + ' ' + st_hora);
// System.out.println("@@@@ dt str= " + dtstr + " hora: " + st_hora);
java.sql.Timestamp dt_tms = Timestamp.valueOf(dtstr);
noticia.setData_noticia(dt_tms);
System.out.println(" tms sql= " + dt_tms);
nDAO.adiciona_noticia(noticia);
RequestDispatcher chama_listagem = request.getRequestDispatcher("/lista_noticias.jsp");
System.out.println("1 ==> chama listagem: lista_noticias.jsp " + chama_listagem);
System.out.println(" data_noticia= " + request.getParameter("data_noticia_DMA"));
chama_listagem.forward(request, response);
} catch (ParseException | NumberFormatException | ServletException | IOException e) {
System.out.println("3 reenvia_Formulario_inclusao ");
reenvia_Formulario_inclusao(noticia, request, response);
}
}
private void reenvia_Formulario_inclusao(Noticia noticia, HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// System.out.println(" $$$ data string: " + request.getParameter("data_noticia_DMA"));
System.out.println(" $$$ dt str: " + request.getParameter("data_noticia_DMA") + " @ " + noticia.getData_noticia_DMA());
System.out.println(" autor: " + request.getParameter("id_usuario"));
System.out.println(" titulo: " + request.getParameter("titulo_manchete"));
System.out.println(" materia: " + request.getParameter("materia"));
SimpleDateFormat wf_dma = new SimpleDateFormat("dd/MM/yyyy");
DateFormat wf_amd = new SimpleDateFormat("yyyy-MM-dd");
DateFormat wf_dma2 = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date wdt2_AMD = null;
try {
wdt2_AMD = new java.sql.Date(wf_dma2.parse(request.getParameter("data_noticia_DMA")).getTime());
} catch (ParseException ex) {
wdt2_AMD = null;
}
System.out.println("@ dt2 AMD: " + wdt2_AMD);
noticia.setData_noticia_DMA(wdt2_AMD);
String wdt3_str = wf_amd.format(wdt2_AMD);
// request.setAttribute("noticia.data_noticia_DMA", wdt3_str);
// noticia.setData_noticia_DMA(wdt2_AMD);
request.setAttribute("noticia", request.getParameter("noticia"));
//request.setAttribute("noticia.data_noticia_DMA", request.getParameter("data_noticia_DMA"));
System.out.println("@ data noticia: " + noticia.getData_noticia_DMA() + " @ " + wdt2_AMD + " @ " + wdt3_str);
RequestDispatcher rd = request.getRequestDispatcher("/inclusao_noticia.jsp");
rd.forward(request, response);
}
}
Javabeans:
package br.com.noticiasWeb.modelo.javaBeans;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Date;
/**
*
* @author Wanderlei
*/
public class Noticia {
/* private Integer id_usuario;
private Calendar data_noticia;
private String titulo_manchete;
private String materia;
*/
// public String data_noticia_DMA;
public Date data_noticia_DMA;
public Integer id_usuario;
public String titulo_manchete;
public String materia;
public Timestamp data_noticia;
private Integer micro_segundo;
private Time hora_HMS;
/* protected Integer id_usuario;
protected Timestamp data_noticia;
protected String titulo_manchete;
protected String materia;
*/
public Integer getId_usuario() {
return id_usuario;
}
public void setId_usuario(Integer id_usuario) {
this.id_usuario = id_usuario;
}
public Timestamp getData_noticia() {
// System.out.println("get data_noticia= " + data_noticia);
return data_noticia;
}
public void setData_noticia(Timestamp data_noticia) {
this.data_noticia = data_noticia;
// System.out.println("set data_noticia= " + this.data_noticia);
}
//public Date getData_noticia_DMA() {
public Date getData_noticia_DMA() {
return data_noticia_DMA;
}
public void setData_noticia_DMA(Date data_noticia_DMA) {
this.data_noticia_DMA = data_noticia_DMA;
}
public String getTitulo_manchete() {
return titulo_manchete;
}
public void setTitulo_manchete(String titulo_manchete) {
this.titulo_manchete = titulo_manchete;
}
public String getMateria() {
return materia;
}
public void setMateria(String materia) {
this.materia = materia;
}
public Integer getMicro_segundo() {
return micro_segundo;
}
public void setMicro_segundo(Integer micro_segundo) {
this.micro_segundo = micro_segundo;
}
public Time getHora_HMS() {
return hora_HMS;
}
public void setHora_HMS(Time hora_HMS) {
this.hora_HMS = hora_HMS;
}
}