Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    [JSP]pagina che richiama una servlet

    Riporto il codice della pagina ricerca.jsp


    <%
    String valore = request.getParameter("ricercaTesto")!= null && !request.getParameter("ricercaTesto").equals("") ?request.getParameter("ricercaTesto"):"";
    String data = request.getParameter("ricercaData")!=null && !request.getParameter("ricercaData").equals("") ?request.getParameter("ricercaData"):"";
    String ora = request.getParameter("ricercaOra")!=null && !request.getParameter("ricercaOra").equals("") ?request.getParameter("ricercaOra"):"";
    Object o = request.getSession().getAttribute("kaSession");
    boolean flag = o!= null ? ((Boolean)o).booleanValue() : false;
    o = request.getSession().getAttribute("kbSession");
    boolean flagb = o != null ? ((Boolean)o).booleanValue() : false;
    o = request.getSession().getAttribute("kcSession");
    boolean flagc = o != null ? ((Boolean)o).booleanValue() : false;
    o = request.getSession().getAttribute("kdSession");
    boolean flagd = o != null ? ((Boolean)o).booleanValue() : false;

    %>

    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="<%= request.getContextPath() %>/css/newsianblu.css">
    <title>Ricerca</title>
    <Script language="JavaScript">
    function VerificaCampiObblig()
    {
    var ricercaTesto = document.getElementById('ricercaTesto').value;
    var ricercaData = document.getElementById('ricercaData').value;
    var ricercaOra = document.getElementById('ricercaOra').value;
    alert('sono in VerificaCampiObblig ');

    if (ricercaTesto == "" && ricercaData== "" && ricercaOra== "" ) {
    alert('Inserire la stringa o data e ora.');
    document.getElementById('ricercaTesto').focus();
    return false;
    }

    if(ricercaTesto == "" && ricercaData == "" && ricercaOra != ""){
    alert('Campo Data obbligatorio.');
    document.getElementById('ricercaTesto').focus();
    return false;
    }

    if(ricercaTesto == "" && ricercaData!= "" && ricercaOra == ""){
    alert('Campo Ora Obbligatorio');
    document.getElementById('ricercaTesto').focus();
    return false;
    }

    if (ricercaTesto == "" && ricercaData!= "" && ricercaData.length !=10){
    alert('Formato della data non valida. Sintassi dd/mm/yyyy')
    return false;
    }

    if (ricercaTesto == "" && !(ricercaOra.length >5 && ricercaOra.length <11)){
    alert("Formato dell'ora non è valido")
    return false;
    }

    if(ricercaTesto != "" && ricercaData!= "" && ricercaOra == ""){
    alert('Campo Ora Obbligatorio');
    document.getElementById('ricercaTesto').focus();
    return false;
    }

    return true;
    }
    </Script>
    </head>
    <jsp:useBean id="keyData" scope="session" class="java.lang.String"></jsp:useBean>
    <jsp:useBean id="keyOra" scope="session" class="java.lang.String"></jsp:useBean>
    <body>




    <h3 align="center"> Cerca in <%= request.getContextPath().substring(1) %>.log</h3>
    <% if(flag){%>
    <p align="center">
    <font color="red">
    Il formato inserito per la data non è corretto
    </font>
    </p>
    <%} %>
    <% if(flagb){%>
    <p align="center">
    <font color="red">
    La data inserita non è valida
    </font>
    </p>
    <%} %>
    <% if(flagc){%>
    <p align="center">
    <font color="red">
    Il formato inserito per l'ora non è corretto
    </font>
    </p>
    <%} %>
    <% if(flagd){%>
    <p align="center">
    <font color="red">
    La data e l'ora inserite potrebbero contenere un errore
    </font>
    </p>
    <%} %>

    <form onSubmit="return VerificaCampiObblig();" method=get action="<%=request.getContextPath()%>/ricerca">
    <table border="0" align="center" width="350">
    <tr>
    <td>Parola chiave</td>
    <td><input type="text" name="ricercaTesto" value ="<%= valore%>" size=30 /></td>
    </tr>
    <tr>
    <td>In data</td>
    <td><input type="text" name="ricercaData" value ="<%= data%>" size=10 /></td>
    </tr>
    <tr>
    <td>Alle ore</td>
    <td><input type="text" name="ricercaOra" value ="<%= ora%>" size=8 /></td>
    </tr>
    </table>





    <table align=center>
    <tr>
    <td><input type="submit" name="Ricerca" value="Cerca"></td>
    <td><input type="reset" name="Cancella" value="Cancella"></td>
    </tr>
    </table>

    </body>
    </html>

    Non riesco a capire come devo impostare il codice in modo che mi controlli la data separatamente dall'ora. L'applicazione è quasi del tutto testata, a parte il fatto che dovrei controllare separatamente l'ora e la data. Inoltre vorrei che quando inserisco un campo non valido non mi cancelli i campi validi che ho già scritto. Qualcuno può aiutarmi ?

    Riporto anche il codice della servlet :

    import java.io.IOException;
    import java.util.Vector;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class RicercaModificato extends HttpServlet{
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException{
    String valore = request.getParameter("ricercaTesto")!= null && !request.getParameter("ricercaTesto").equals("") ?request.getParameter("ricercaTesto"):"";
    String data = request.getParameter("ricercaData")!=null && !request.getParameter("ricercaData").equals("") ?request.getParameter("ricercaData"):"";
    String ora = request.getParameter("ricercaOra")!=null && !request.getParameter("ricercaOra").equals("") ?request.getParameter("ricercaOra"):"";
    try {
    if(UtilityRicerca.validateDataNew(data)){
    if(!UtilityRicerca.dataValido(data)){
    request.getSession().setAttribute("kbSession", new Boolean(true));
    response.sendRedirect("ricerca.jsp");
    }
    }
    else {
    request.getSession().setAttribute("kaSession", new Boolean(true));
    response.sendRedirect("ricerca.jsp");
    }

    if(UtilityRicerca.validateOraNew(ora, data)){
    if(UtilityRicerca.dataOraValido(ora, data)){
    String realPath = request.getRealPath("");
    int index = realPath.indexOf("applications");
    String fileName = realPath.substring(0, index)+"log/FirstProject.log";
    Vector s = new UtilityRicerca().leggiFile(fileName, valore, data, ora);
    request.getSession().setAttribute("key", s);
    response.sendRedirect("risultatoRicerca.jsp");
    }
    else{
    request.getSession().setAttribute("kdSession", new Boolean(true));
    response.sendRedirect("ricerca.jsp");
    }
    }
    else{
    request.getSession().setAttribute("kcSession", new Boolean(true));
    response.sendRedirect("ricerca.jsp");
    }
    }
    catch (Exception e) {
    e.printStackTrace();
    request.getSession().setAttribute("Errore", e.getMessage());
    response.sendRedirect("errore.jsp");
    }
    }
    }
    Grazie

  2. #2
    Puoi controllare data e ora direttamente nella tua funzione javascript utilizzando le espressioni regolari. per la data nel formato dd/mm/yyyy l'espressione regolare da utilizzare è:

    codice:
    var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
    if (!((ricercaData.match(RegExPattern)) && (ricercaData.value!=''))) {
            alert('Data non valida'); 
    }
    per l'orario l'espressione regolare diventa:

    codice:
    var RegOra = /^([01]?[0-9]|[2][0-3])(:[0-5][0-9])?$/;
    if(!(ricercaOra.match(RegOra) && (ricercaOra.value!=''))){
         alert('Orario non valido');
    }
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    Re:

    Grazie per la pazienza,
    soprattutto per aver letto il "mostro" che ho impostato..

    Questo controllo fa si anche che se c'è un errore di battitura
    i parametri di ricerca corretti non vengano cancellati?

    Grazie

  4. #4
    ti basta aggiungere opportunamente return true o false in base all'esito del controllo per evitare di eseguire il submit. Quindi se ci sono errori resti sempre nella stessa pagina senza perdita di valori.
    Al mio segnale... scatenate l'inferno!

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    Bene

    Ok, grazie.

    Testato e riuscito

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.