在servlet响应之后,在Servlet中调用Javascript函数

时间:2016-06-03 17:20:04

标签: javascript jsp servlets

我有一个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");
        }

2 个答案:

答案 0 :(得分:2)

看起来您正在重定向页面。

response.sendRedirect("user/master/" + entity + ".jsp");

尝试也发送函数定义。

答案 1 :(得分:1)

你只能使用为它设置额外变量,然后根据该变量的值调用javascript函数。您可以按照以下步骤进行操作

  1. 在servlet中设置一个布尔变量

      

    boolean isResponse = true;

  2. 然后将其添加到您的回复中

      

    request.setAttribute(&#34; isResponse&#34;,isResponse);

  3. 在jsp中添加以下代码。

      

    $ {isResponse ==&#34; true&#34;?&#39; windows.onLoad = functionname()&#39;:&#39;&#39; }

  4. 你完成了它。