[英]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.