【问题标题】:Call a Javascript function from a JSP Servlet forward从 JSP Servlet 向前调用 Javascript 函数
【发布时间】:2014-05-21 09:11:22
【问题描述】:

我今天要做的是直接从 JSP Servlet 响应中调用 Javascript 函数。这意味着什么?代码如下:

Servlet,这包含在 myServlet.java 中

// Takes an XML already previously parsed as a string as input
CharSequence confirm= "something";
    if (xml.contains(confirm)) {
            // Carry on
            // If it is contained we needn't go further
    } else {
        // "couldn't find confirms content
        errorMessage = "Does not contain confirm";
        // "If ^ quit this servlet"
        request.setAttribute("rol", this.rol);
        request.setAttribute("user", this.user);
        request.setAttribute("errorMessage", errorMessage);
        forwardToJSP(request, response, "/myJSP.jsp");
    }

现在在 Javascript 中,我已经定义了一个我想要调用的函数。大致是这样的:

Javascript,这包含在 myJSP.jsp

<script language="JavaScript" type="text/JavaScript">
    // Assume all document.getElementById calls are properly implemented,
    //   they call real variables that exist elsewhere, but not shown 
    //   here due to irrelevance.
    window.errorExists = function() {
        var errorExists = document.getElementById("terror");
        errorExists.setAtribute("terror", "Does not contain confirm");
        if (errorExists.attributes == "Does not contain confirm"){
           if(confirm("Cannot find content, do you wish to add it?")){
               anotherFunctionCall();
           } else {
               // Don't do anything
           }
    }
}
</script>

现在,简单来说,我想做的是从上述 JSP 调用我的 Javascript 函数。我认为不能通过以下变通方法做到这一点:

PrintWriter out = response.getWriter();
out.println("<tr><td><input type='button' name='Button' value='Search' onclick=\"searchRecord('"+ argument + "');\"></td></tr>");

因为不会调用其他函数,所以还有对 Javascript 变量的更新。

如何解决这个问题?

非常感谢任何和所有帮助。

【问题讨论】:

  • 这个 javascript 方法是否已定义或可以从 myJSP.jsp 文件中访问?
  • 如果你转发到JSP,你可以将JSP属性直接放到javascript中。

标签: java javascript jquery jsp servlets


【解决方案1】:

您可以在JSP页面正文的onload参数中调用该方法。

由于您已经使用 Forward 方法调用 JSP 页面,因此您的 JSP 页面在您调用它时会被加载。您可以在 JSP 页面的 body 标签中调用您的方法,如下所示:

<body onload="YourMehodName()">

或者,您可以将此脚本放在 JSP 的底部,该脚本将在您的页面加载时被调用。

【讨论】:

  • 您能否进一步详细说明您最初的反应?
猜你喜欢
  • 1970-01-01
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
相关资源
最近更新 更多