Data Atual input jsp

5 respostas Resolvido
java
J

Gostaria de preencher automaticamente no input do formulário com a data atual, pois da forma em está só da certo se o usuario preenher e é isto que não desejo (deve ser preenchido automaticamente pelo sistema). Abaixo segue o trecho do arquivo jsp.:

<label for="vendata">Data
    <input type="date" name="vendata" id="vendata" onkeypress="formata_mascara(this,'##/##/####'); return Numero(event);" placeholder="dd/mm/aaaa" pattern="[0-9]{2}/[0-9]{2}/[0-9]{4}" size="10" value="${param.vendata}" required size="10" />

No DAO o metodo que utilizo para gravar está descrito abaixo:

//metodo que inclui um novo pedido feito pelo usuario
public void novaVenda(Venda venda) throws SQLException {
    String sql = "insert into vendas (vendata, vencli, venvaltotal) values (?,?,?)";
    PreparedStatement ps = null;

    try {
        ps = conexao.prepareStatement(sql);
        ps.setDate(1, new java.sql.Date(venda.getVenData().getTime()));
        ps.setString(2, venda.getVenCli());
        ps.setDouble(3, venda.getVenValTotal());
        ps.execute();
    } catch (SQLException er) {
        Logger.getLogger(VendaDAO.class.getName()).log(Level.SEVERE, null, er);
    } finally {
        ps.close();
    }
}

Meu servlet está da seguinte forma:

String venCodigo = request.getParameter("vencodigo");
    String venData = request.getParameter("vendata");
    String venCli = request.getParameter("vencli");
    //String venTotal = request.getParameter("venvaltotal");

    Venda venda = new Venda();

    if(venCodigo != null)
        venda.setVenCodigo(Integer.parseInt(venCodigo));
    DateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
    if(venData != null){
        Date venDataFormatada = formatoData.parse(venData);
        venda.setVenData(venDataFormatada);
    }
    venda.setVenCli(venCli);
    //if(venTotal != null)
      //  venda.setVenValTotal(Double.parseDouble(venTotal));

5 Respostas

L

Da uma lida sobre taglibs…

https://www.caelum.com.br/apostila-java-web/usando-taglibs/

E use a tag formatDate

https://www.caelum.com.br/apostila-java-web/usando-taglibs/#7-14-formatacao-de-datas

J

Olá LostSoldier!
Fiz um JavaScript e coloquei no arquivo jsp, mas não deu certo. Segue abaixo todo o arquivo jsp com o script:

<%-- 
    Document   : index
    Created on : 17/01/2017, 20:57:39
    Author     : Jairo
--%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib tagdir="/WEB-INF/tags" prefix="tagsJairo" %>
<tagsJairo:verificaUsuario/>
<c:import url="cabecalho.jsp"/>
<h1Formulario de Pedidos</h1>
<form id="formVenda" method="post" action="VendaCRUD">
    <label for="vencodigo">Codigo da Venda</label>
    <input type="text" name="vencodigo" id="vencodigo" size="10" disabled
           value="<%
                       if (request.getParameter("vencodigo") != null) {
                           out.println(request.getParameter("vencodigo"));
                       } else if (request.getAttribute("sessaoUltimoRegistroVenda") != null) {
                           out.println(request.getAttribute("sessaoUltimoRegistroVenda"));
                       }
           %>"
           />
    <label for="vendata"Data</label>
    <input type="date" name="vendata" id="vendata" onkeypress="formata_mascara(this,'##/##/####'); return Numero(event);" placeholder="dd/mm/aaaa" pattern="[0-9]{2}/[0-9]{2}/[0-9]{4}" size="10" value="${param.vendata}" required size="10" 
    <label for="vencli"Cliente</label>
    <input type="text" name="vencli" id="vencli" size="5" value="${nome}" readonly<br><br>
    <%--label for="venvaltotal">Total Geral:</label>
    <input type="text" name="venvaltotal" id="venvaltotal" size="20" maxlength="20" value="${param.venvaltotal}"<br>--%>
    <input type="submit" name="acao" value="Escolher Produto"
</form>
<form id="formItensVenda" method="post" action="VendaCRUD"
      <%if (request.getParameter("vendata") == null) {
                      out.println("hidden='true'");
                  }
      %>>
    <input type="hidden" name="itenscodvenda" value=<%
                if (request.getParameter("itenscodvenda") != null) {
                    out.println(request.getParameter("itenscodvenda"));
                } else if (request.getAttribute("sessaoUltimoRegistroVenda") != null) {
                    out.println(request.getAttribute("sessaoUltimoRegistroVenda"));
                }
           %>
    <label for="prodcodigo"Codigo do Produto</label>
    <input type="text" name="prodcodigo" id="prodcodigo" size="10" disabled 
    <select name="selectProduto" id="selectProduto"
        <tagsJairo:listaProdutoSelect
    </select
    <label for="itensquant"Quantidade</label>
    <input type="text" name="itensquant" id="itensquant" size="10" required
    <input type="hidden" name="itenstotalvenda" id="itenstotalvenda" size="10" value="${param.itenstotalvenda}"
    <input type="hidden" name="vencli" id="vencli" value="${nome}" 
    <input type="hidden" name="vendata" id="vendata" value="${param.vendata}" 
    <input type="hidden" name="venvaltotal" id="venvaltotal" value="${param.venvaltotal}" 
    <input type="submit" name="acao" value="Incluir Produto"/><br>
    <%
                if (request.getAttribute("sessaolistaItensVenda") != null) {
                    java.util.List listaDeItensVenda = (java.util.List) request.getAttribute("sessaolistaItensVenda");

                    out.println("<table border='1'>");
                    out.println("<tr><td>Codigo da Venda</td><td>Codigo do Produto</td><td>Nome do Produto</td><td>Quantidade</td><td>Preço</td><td>Total</td></tr>");
                    double totalVenda = 0;
                    for (java.util.Iterator iterator = listaDeItensVenda.iterator(); iterator.hasNext();) {
                        br.com.jairo.modelo.ItensVenda itensVenda = (br.com.jairo.modelo.ItensVenda) iterator.next();
                        out.println("<tr>");
                        int itensCodVenda = itensVenda.getItensCodVenda();
                        int itensCodProd = itensVenda.getItensCodProd();
                        String prodDescricao = itensVenda.getProdDescricao();
                        int itensQuant = itensVenda.getItensQuant();
                        double prodValor = itensVenda.getProdValor();
                        double itensTotalVenda = itensQuant * prodValor;
                        totalVenda += itensTotalVenda;
                        out.println("<td align='center'>" + itensCodVenda + "</td>");
                        out.println("<td align='center'>" + itensCodProd + "</td>");
                        out.println("<td align='center'>" + prodDescricao + "</td>");
                        out.println("<td align='center'>" + itensQuant + "</td>");
                        out.println("<td align='center'>" + prodValor + "</td>");
                        out.println("<td align='center'>" + itensTotalVenda + "</td>");
                        out.println("</tr>");
                    }
                    out.println("<tr>");
                    out.println("<td align='right' colspan='5'>Valor Total Deste Pedido:</td>");
                    out.println("<td>" + totalVenda + "</td>");
                    out.println("</tr>");
                    out.println("</table>");
                }
    %>
</form>
<c:import url="rodape.jsp"/>
<script
    function atualizaCodigoProduto(){
        var getProdCodigo = document.forms['formItensVenda']['selectProduto'].value;
        document.forms['formItensVenda']['prodcodigo'].value = getProdCodigo;
    }
    window.onload = function(){
        document.forms['formItensVenda']['selectProduto'].onclick = atualizaCodigoProduto;
    };
    function dataAtual(){
        data = new Date();
        dia = data.getDate();
        mes = data.getMonth();
        ano = data.getYear();
        dataCompleta = dia+'/'+mes+'/'+ano;

        return dataCompleta;
    }
    window.onload = function(){
        document.getElementById("vendata").value = Data();
    }
</script>

Não funcionou. Pode me mostrar onde está o erro!?

L
Solucao aceita

Imagino que você está chamando a função errada…

document.getElementById("vendata").value = Data();

Não seria dataAtual() ?

Outra coisa, não recomendo você confiar uma data pelo javascript pelo simples fato dele pegar a data/hora da máquina que está rodando o script e não pelo servidor que seria o ideal (o usuário pode alterar a data do computador dele e o js pega a data modificada pegou?)

J

Olá LostSoldier!

Muito obrigado, você me ajudou e muito na solução deste problema. Agora com relação a você não recomendar uma data pelo javascript pelo simples fato dele pegar a data/hora da máquina que está rodando o script e não pelo servidor que seria o ideal (o usuário pode alterar a data do computador dele e o js pega a data modificada pegou?).
Como faço para colocar isto no servidor, nunca fiz esta opção que você menciona, e pensei em colocar o preenchimento automático justamente por pensar em que o usuário poderia colocar uma data qualquer!

Abaixo está descrito como ficou o codigo:

JSP:
input type=“date” name=“vendata” id=“vendata” size=“10” maxlength=“10” readonly/>

javascript:

function dataAtual(){

data = new Date();

dia = data.getDate();

mes = data.getMonth()+1;

ano = data.getFullYear();

dataCompleta = dia+/’+mes+’/+ano;
return dataCompleta;
}
window.onload = function(){
    document.getElementById("vendata").value = dataAtual();
}
L

Dá uma lida na apostila que postei acima e você vai entender como trazer a hora do servidor usando taglibs, abraço

Criado 14 de abril de 2017
Ultima resposta 15 de abr. de 2017
Respostas 5
Participantes 2