2013-06-27 40 views
1

我如何从一个POST请求使用Scala的播放GET请求发送请求数据?(使用播放框架2.1.1)播放框架发送POST请求数据GET

我的目标是有一个单页“报告“是这样工作的:报告是一个GET请求,所以如果需要的话,您可以为此报告添加书签。该报告由一个模型表组成,每个模型行末尾都有一个删除按钮。我想单击删除按钮,让它将ID发布到我的控制器,然后重新加载报告筛选参数仍在的页面。

目前我有删除按钮只是添加到获取,它工作正常,但remove = id参数保留在请求/地址栏。因此,每次重新加载页面时都会尝试删除此模型。我想要做的就是使用这种形式的POST,然后删除模型,然后将除remove之外的所有请求参数发送到GET请求。

我宁愿这样做没有JavaScript/AJAX。

回答

0

您可以通过使用queryString和来自请求对象的路径来重建URL。然后重定向回去(不带删除参数) How to get query string parameters in java play framework?

或者如果您在解析出路由文件中有呼叫设置,请使用反向路由减去删除参数。 Play Framework - Redirect with params http://www.mariussoutier.com/blog/2012/12/10/playframework-routes-part-1-basics/

def index() = Action { request => 
    import play.api.Play.current 
    println(request.queryString) 
    val allWithoutDel = request.queryString - "del" //del is the query parameter 
    println(allWithoutDel) 
    val url = request.path + // fold or map the allWithoutDel down to a URL string again 
    redirect(url) 
    } 
+0

这就是我最初尝试。但'request.queryString'是空的。如果我打印出'request.body',参数就在那里。 – kingdamian42