从javascript调用JSP方法

时间:2015-04-17 09:40:40

标签: java javascript jsp

我有上面的js和JSP代码,我想在点击确认窗口poopup上的procedureCall()按钮时调用ok(内部"如果"语句)。 是否有可能,如果是,可以如何做?

<script type="text/javascript">
        function confirmDelete() {
            var answer = confirm("Are you sure you want to delete");
            if (answer == true) {
                return true;
            } else {
                return false;
            }
        }
</script>

JSP片段:

<%!    public void procedureCall(int cId) {
            String procedureCall = "{call NEW_PORTING_PRC.delete_album_metadata(cId)}";
                try (CallableStatement cal = conn.prepareCall(procedureCall);) {

                } catch (Exception e) {
                    e.printStackTrace();
                }
%>

2 个答案:

答案 0 :(得分:2)

javascript在您的浏览器中运行,您的Java代码部署在您的容器(Tomcat)中。 因此,只有这样才能通过Web调用来调用它。你的javascript应该调用一个servlet的ajax调用(在web.xml中配置),这个servlet应该调用你的java方法。 比如JS,你写的是

 $.get('URLofServlet');

OR 您可以尝试使用一些参数提交JSp并重新加载JSP ..

if (answer == true) 
{
   document.getElementById("param1").value='paramvalue';
   document.getElementById("myForm").action='yourJspPath.jsp';
   document.getElementById("myForm").submit();
}

另外我假设id和name都是&#39; param1&#39;为了简单.. 在scriptlet中你可以这样做

<%
    if(request.getParamter("param1")=='paramvalue'){procedureCall();}
%>

只是要添加我会建议删除scriplets并使用ajax,如第一种方法。

答案 1 :(得分:0)

使用表单提交或ajax请求或框架操作返回结束并处理您所需的内容。在您的方法中,我认为这是不可能的。 请不要在jsp中使用scriplets,这不是一个好习惯。