我尝试在点击提交按钮完成该过程后在我的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();
}
}
}
答案 0 :(得分:8)
所以让我们说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时,如何摆脱初始警报? “表格已提交”是我执行的第二个。它在负载完成后显示出来是完美的。
要做到这一点,我强烈建议使用session!
所以你想要做的就是你的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,则函数将运行!
答案 1 :(得分:3)
在你的servlet中
request.setAttribute("submitDone","done");
return mapping.findForward("success");
在你的jsp中
<c:if test="${not empty submitDone}">
<script>alert("Form submitted");
</script></c:if>
答案 2 :(得分:0)
您还可以创建一个新的jsp文件,表示该表单已被提交,并且在您的主操作文件中只需写入其文件名
EG。提交的表单位于文件succes.jsp中 然后您的操作文件将
{{1}}