【问题标题】:how can I redirect in .jsp while working with Ajax使用 Ajax 时如何在 .jsp 中重定向
【发布时间】:2012-11-29 03:50:43
【问题描述】:

我正在使用 Ajax 和 jsp 开发应用程序。

我的 index.jsp 页面包含用于登录的 HTML 代码和一些 javascript 中的 Ajax 代码。 Ajax 将调用我的另一个 CheckLogin.jsp 页面

CheckLogin.jsp 页面在服务器上检查有效的用户名和密码。如果有效则返回“成功”,否则将返回“用户名或密码无效”的消息。

现在,当用户名和密码有效时,我想将页面重定向到“Home.jsp”而不是成功,我该怎么办?

我是 jsp 的新手。感谢您在这方面的帮助。

【问题讨论】:

    标签: ajax jsp


    【解决方案1】:

    JSP 代码在发送到客户端之前在服务器上运行一次,因此 JSP/JSTL 无法在 AJAX 调用成功或其他情况下执行重定向(没有完整的页面刷新 - 这避免了 AJAX 的使用)。您应该使用 Javascript 进行重定向:

    if (success) {
        var successUrl = "Home.jsp"; // might be a good idea to return this URL in the successful AJAX call
        window.location.href = successUrl;
    }
    

    在成功的 AJAX 调用/验证后,浏览器窗口将使用新 URL 重新加载(实际上是重定向)。

    【讨论】:

    • “如果(成功)”中的成功是什么?因为我尝试了一种方法,例如我的 jsp 页面将返回消息“成功”,并且我试图检查我的索引页面,如果该响应消息成功而不是重定向页面,但该消息包含一些额外的字符并且也不确定响应的数据类型消息所以无法解决。
    • 谢谢 nickdos。我在 if 语句中进行了字符串比较。使用了上面评论中提到的相同想法。我在字符串比较和使用修剪功能时犯了错误。我在javascript和java之间犯了错误。但是你的 window.location.href = successUrl 工作正常
    • 也可以使用document.location = successUrl
    【解决方案2】:

    由于我没有看到您的代码,您可以将其集成到您的验证中:

    <%
        pageContext.forward("logged.jsp");
    %>
    

    【讨论】:

    • 我试过这个,但它给了我我的 Home.jsp 的代码(在你的例子中是logged.jsp)。我将来自我的 checklogin.jsp 文件的响应显示到一个
      中。它将 Home.jsp 代码显示到
      标记
    【解决方案3】:
    function Edit() {
    var allVals = $('#NEWFORMCampaignID').val();
    if (allVals > 0) {
      window.location = '/SMS/PrepareSMS?id='+allVals;
    }
    else
      alert("Invalid campaign to Edit")
    

    }

    为了使用按钮点击重定向并传递一些参数,您可以调用控制器路径(@RequestMapping(value="/SMS/PrepareSMS")) 然后在那里处理它..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      相关资源
      最近更新 更多