![](/img/trans.png)
[英]How to give alert message in servlet and redirected it to jsp page
[英]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.