繁体   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