簡體   English   中英

如何在提交過程完成后在jsp頁面中創建警報消息

[英]How to create an alert message in jsp page after submit process is complete

我試圖通過點擊提交按鈕完成該過程后在我的jsp中添加一條消息。

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>

現在,提交過程只會在我清除警報后發生。 有沒有辦法可以在提交過程完成后彈出警報,或者我是否可以向jsp頁面添加消息? 在此先感謝桑尼

這是我更新的Servlet導致錯誤:

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();
    }
}

}

所以讓我們說getMasterData servlet將response.sendRedirect轉換為test.jsp。

在test.jsp中

創建一個JavaScript

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

而不是在底部

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

注意:我不知道如何在stackoverflow中鍵入代碼! 編輯:我剛剛學會了如何

編輯2:問題:這完美無缺。 另一個問題。 當我第一次啟動JSP時,如何擺脫初始警報? “表格已提交”是我執行的第二個。 它在負載完成后顯示出來是完美的。

要做到這一點,我強烈建議使用會話!

所以你想要做的是在你的servlet中:

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

比在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> 

而不是在底部

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

因此,每次提交該表單時,會話都將被傳遞! 如果session不為null,則該函數將運行!

在你的servlet中

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

在你的jsp中

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

您還可以創建一個新的jsp文件,表示該表單是已提交的,並且在您的主操作文件中只需寫入其文件名

例如。 您的表單已提交到文件succes.jsp然后您的操作文件將具有

Request.sendRedirect("success.jsp")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM