如何在提交过程完成后在jsp页面中创建警报消息

Son*_*nny 9 javascript jsp

我试图通过点击提交按钮完成该过程后在我的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>
Run Code Online (Sandbox Code Playgroud)

现在,提交过程只会在我清除警报后发生.有没有办法可以在提交过程完成后弹出警报,或者我是否可以向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();
    }
}

}
Run Code Online (Sandbox Code Playgroud)

Kap*_*sHi 8

所以让我们说getMasterData servlet将response.sendRedirect转换为test.jsp.

在test.jsp中

创建一个JavaScript

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

而不是在底部

<script type="text/javascript"> window.onload = alertName; </script>
Run Code Online (Sandbox Code Playgroud)

注意:我不知道如何在stackoverflow中键入代码!编辑:我刚刚学会了如何

编辑2:问题:这完美无缺.另一个问题.当我第一次启动JSP时,如何摆脱初始警报?"表格已提交"是我执行的第二个.它在负载完成后显示出来是完美的.

要做到这一点,我强烈建议使用会话!

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

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

比在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> 
Run Code Online (Sandbox Code Playgroud)

而不是在底部

<script type="text/javascript"> window.onload = alertName; </script>
Run Code Online (Sandbox Code Playgroud)

因此,每次提交该表单时,会话都将被传递!如果session不为null,则该函数将运行!