Play Framework重定向并不总是有效的.Bug还是我的错

Play Framework redirect not always work. Bug or my fault?

本文关键字:有效 Bug 是我的错 Framework 重定向 Play      更新时间:2023-09-26

我正在尝试将用户重定向到我的播放项目中的另一个页面。问题是,重定向在一个视图中运行得很好,但在另一个视图则不起作用。

奇怪的是,当我看控制台时,我可以看到系统已经加载了视图(我可以通过设置system.out.println()命令来看到这一点),但我看不到浏览器视图中发生了这种情况。

工作代码:

    public static void deleteMessages(boolean[] chbox)
{
    System.out.println("Checkbox count: "+chbox.length);
    String[] referer =Request.current().headers.get("referer").toString().split("/");
    String mailbox = referer[referer.length-2];
    String pageNumber ="/"+ referer[referer.length-1];
    for(int i = 0; i<chbox.length;i++)
    {
    String id=params.getAll("hdnchbox")[i].toString();
    if(mailbox.equals("inbox"))
    {
        MessageInbox m = MessageInbox.findById(Long.parseLong(id));
        m.delete();
    }else
    {
        MessageOutbox m = MessageOutbox.findById(Long.parseLong(id));
        m.delete();
    }
    }
    show(mailbox,Integer.parseInt(pageNumber));
}

不工作代码:

    public static void deleteMessage(Long id, String mailbox)
{
    if(mailbox.toLowerCase().equals("inbox"))
    {
    MessageInbox msg = MessageInbox.findById(id);
    msg.delete();
    }
    else
    {
    MessageOutbox msg = MessageOutbox.findById(id);
    msg.delete();
    }
    System.out.println("Redirect URL: "+"/Messages/"+mailbox);
    String redirectURL = "/Messages/"+mailbox;
    show(mailbox,null);
}

展会无效:

    public static void show(String messageBoxName,Integer pageNumber)
{
    if(pageNumber == null)
    {
        System.out.println("pagenumber null");
        pageNumber = 0;
    }
    List<UserMessage> msgs = messageList(pageNumber,messageBoxName);
    System.out.println("The page has loaded");
    render(pageNumber,msgs,messageBoxName);
}

最奇怪的是,我可以在系统控制台中看到"页面已加载"消息,但我可以在浏览器窗口中看到。

是bug,还是我做错了什么?

(将null值传递给show()我试过了)

这可能是localVariables的一个错误,我以前也遇到过类似的问题。即使我重新分配了一个像pageNumber这样的变量,我的模板中也为null

试着调用"show(mailbox,0)"而不是"show(邮箱,null)",看看它是否解决了您的问题

我最终用jquery重定向,而不是播放重定向命令。我认为这是一个游戏中的bug框架。我可以在firebug中看到响应html,但在浏览器屏幕上没有运气。