我有一个jsp页面。在jsp页面中有一个表单,当我按下提交时,控件转到servlet,servlet在同一个jsp中发送响应。我想在调用响应后调用javascript函数。
String operation = request.getParameter("operation");
if (operation.equals("create")) {
String value = null;
Map<String, String> requestMap = new HashMap<>();
String entity = request.getParameter("entity");
Enumeration<String> parameterNames = request.getParameterNames();
while (parameterNames.hasMoreElements()) {
String paramName = parameterNames.nextElement();
if (paramName.equals("operation") || paramName.equals("entity")) {
value = request.getParameter(paramName);
} else {
value = Constraints.toTitleCase(request.getParameter(paramName));
}
requestMap.forEach((k,v)->System.out.println("{KeY} :"+k+".....{VAlue} :"+v));
requestMap.put(paramName, value);
}
masterHelper.processRequest(requestMap);
log.debug("js");
response.getOutputStream().println("<script>sucess();('hello');</script>");
response.sendRedirect("user/master/" + entity + ".jsp");
}
答案 0 :(得分:2)
看起来您正在重定向页面。
response.sendRedirect("user/master/" + entity + ".jsp");
尝试也发送函数定义。
答案 1 :(得分:1)
你只能使用为它设置额外变量,然后根据该变量的值调用javascript函数。您可以按照以下步骤进行操作
在servlet中设置一个布尔变量
boolean isResponse = true;
然后将其添加到您的回复中
request.setAttribute(&#34; isResponse&#34;,isResponse);
在jsp中添加以下代码。
$ {isResponse ==&#34; true&#34;?&#39; windows.onLoad = functionname()&#39;:&#39;&#39; }
你完成了它。