web-dev-qa-db-fra.com

Comment créer un message d'alerte sur la page jsp une fois le processus de soumission terminé

J'essaie d'ajouter un message dans mon jsp une fois le processus terminé en appuyant sur le bouton d'envoi.

function onSubmit() {
alert("Master_Data.xlsx and Consistency_Check_Data.xlsx are located under d:/stage/MasterDataReports");
}
</script>
<body>

<form name="input" action="getMasterData" method="get">



    <br />
    <br />
    <h1 align='center'>Master Data File</h1>
    <br />
    <br />


    <table border="0" align='center'>
        <tr>
            <td>
                <h2>Site Name</h2>
            </td>
            <td align='left'>
            <jsp:useBean id="masterDao" class="master.dao.MasterDataDao"/>
            <select name="siteId" id="siteId">
            <option value="0">ALL</option>
             <c:forEach items="${masterDao.allSites}" var="siteDto">
             <option value="${siteDto.id}">${siteDto.name}</option>
            </c:forEach>
            </select></td>
        </tr>
        <tr>
            <td>
                <h2>Division</h2>
            </td>
            <td align='left'>
            <jsp:useBean id="masterDaoUtil" class="master.dao.util.MasterDataConstants"/>
            <select name="divisionId" id="divisionId">
            <option value="33"><%=MasterDataConstants.DIVISION_TYPE_AUDIT_MANAGEMENT_GLOBAL_NAME%></option>
            <option value="31"><%=MasterDataConstants.DIVISION_TYPE_CHANGE_MANAGEMENT_GLOBAL_NAME%></option>
            <option value="34"><%=MasterDataConstants.DIVISION_TYPE_DEA_MANAGEMENT_GLOBAL_NAME%></option>
            <option value="35"><%=MasterDataConstants.DIVISION_TYPE_EHS_MANAGEMENT_GLOBAL_NAME%></option>
            <option value="23"><%=MasterDataConstants.DIVISION_TYPE_EVENT_MANAGEMENT_GLOBAL_NAME%></option>
            </select></td>
        </tr>

    </table>
    <br />
    <br />
    <div style="text-align: center">
        **strong text**<input type="submit" value="Submit" OnClick="onSubmit()">
    </div>

À l'heure actuelle, le processus de soumission ne se produira qu'après avoir effacé l'alerte. Existe-t-il un moyen de créer une alerte une fois le processus de soumission terminé ou d'ajouter un message à la page jsp? Merci d'avance Sonny

Voici mon Servlet mis à jour qui provoque une erreur:

package master.service;

import Java.io.IOException;
import Java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
**strong text**import javax.servlet.http.HttpSession;



@SuppressWarnings("serial")

public class MasterDataServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response, HttpSession session)
        throws IOException, ServletException {
    MasterDataService masterDataService = new MasterDataService();
    try {
        int siteId = Integer.parseInt(request.getParameter("siteId"));
        int divisionId = Integer.parseInt(request.getParameter("divisionId"));
        //For master data file
        masterDataService.createMasterDataFile(siteId, divisionId,false);
        //For consistency checker file 
        masterDataService.createMasterDataFile(siteId, divisionId,true);
        request.getRequestDispatcher("/masterDataQueryScreen.jsp").forward(request, response);
        **strong text**session.setAttribute("getAlert", "Yes");//Just initialize a random variable.
        **strong text**response.sendRedirect("/masterDataQueryScreen.jsp");
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}
9
Sonny

Supposons qu'après la servlet getMasterData, response.sendRedirect soit envoyé à test.jsp.

Dans test.jsp

Créer un javascript

<script type="text/javascript">
function alertName(){
alert("Form has been submitted");
} 
</script> 

et que dans le bas

<script type="text/javascript"> window.onload = alertName; </script>

Remarque: je ne suis pas sûr de savoir comment taper le code dans stackoverflow !. Edit: Je viens d'apprendre à

Edit 2: À la question: Cela fonctionne parfaitement. Une autre question. Comment pourrais-je me débarrasser de l'alerte initiale lors du premier démarrage du JSP? "Le formulaire a été soumis" est présent la seconde que j'exécute. Il apparaît une fois la charge terminée, ce qui est parfait. 

Pour ce faire, je vous recommande vivement d'utiliser la session!

Donc ce que vous voulez faire est dans votre servlet:

session.setAttribute("getAlert", "Yes");//Just initialize a random variable.
response.sendRedirect(test.jsp);

que dans le test.jsp

<%
session.setMaxInactiveInterval(2);
%>

 <script type="text/javascript">
var Msg ='<%=session.getAttribute("getAlert")%>';
    if (Msg != "null") {
 function alertName(){
 alert("Form has been submitted");
 } 
 }
 </script> 

et que dans le bas

<script type="text/javascript"> window.onload = alertName; </script>

Donc, chaque fois que vous soumettez ce formulaire, une session sera transmise! Si la session n'est pas nulle, la fonction s'exécutera!

8
KapursaysHi

dans votre servlet 

 request.setAttribute("submitDone","done");
 return mapping.findForward("success");

Dans votre jsp

<c:if test="${not empty submitDone}">
  <script>alert("Form submitted");
</script></c:if>
3
zawhtut

Vous pouvez également créer un nouveau fichier JSP indiquant que le formulaire est soumis et dans votre fichier d'action principal, écrivez simplement son nom de fichier. 

Par exemple. Votre formulaire est soumis est dans un fichier succes.jsp Ensuite, votre fichier d'action aura 

Request.sendRedirect("success.jsp")
0
Muntazir