即使在单击按钮之前,JSP也会重定向到另一个页面

时间:2012-05-05 11:57:59

标签: jquery jsp

我有一个JSP页面,我用它来重定向到另一个url(跨域),所以使用jQuery我放置了一个按钮点击事件,在该事件下应该触发response.sendRedirect,但是一旦页面加载它就会重定向它甚至没有等待警报。这里有什么问题?请帮忙。

在身体负载上调用load()

<script language="JavaScript">
    function load(){
        <%
        String message=(String)request.getAttribute("error");
        if(message != null){
            out.println("alert(\"" + message + "\");");
        }
        %>

    }

    /*a range of options (products) based on which it decides redirection or form submission
    * will lead to the new webapp*/
    var productArray=["iirDefault","ilmDefault","mdmDefault"];
    $(document).ready(function(){       

    });

    /*Button event handler for the intermediate screen for product selection after login*/
    $('#btnLaunchCSM').click(function(event){
        event.preventDefault();

        var selectedProduct=$('input[name=product_name]:checked').val();
        if(jQuery.inArray(selectedProduct, productArray)!=-1)
        {
            e_add=$("#emailaddress").val();
            p_id=$('input[name=project_id]:checked').val();
            alert(e_add+", "+p_id);
            <% 
            String e_add=request.getParameter("email_id");
            String p_id=request.getParameter("project_id");
            response.sendRedirect("http://abhishek:9090/abc/view/loginProxy.jsp?email_id="+e_add+"&project_id="+p_id); 
            %>


        }
        else
        {
            $("#launchSSO").submit();
        }

    });
</script>

1 个答案:

答案 0 :(得分:2)

您似乎期望JSP scriptlet 和JavaScript在编码时同步运行。这不是真的。 Java / JSP在Web服务器中运行并生成HTML。 HTML / JS在webbrowser中运行。右键单击浏览器中的页面并查看源。如果Java / JSP已经完成了它的工作,那么在生成的HTML / JS输出中你不应该看到它的任何一行。

您需要向服务器发送(ajax)HTTP请求。您可以使用jQuery或仅使用普通表单提交。或者你可以在JS中完全执行重定向。用以下方法替换那个臭<% %>块:

window.location = "http://abhishek:9090/abc/view/loginProxy.jsp?email_id="+e_add+"&project_id="+p_id;