Play Framework:处理POST参数?

时间:2014-09-10 22:41:39

标签: playframework playframework-2.0

PlayFramwork新手并遇到障碍。 @ https://www.playframework.com/documentation/2.3.x/JavaForms上的教程通过将表单输入绑定到类来显示处理表单。但是,我想处理HTML表单而不将我的字段绑定到类。

我的表格示例:

<form method="POST" action="form/submit">
<input type="file" name="slider[1][file]" class="thumbnailUpload">
<input type="text" value="http://www.tapiture.com/shop/collection1" name="slider[1][url]" class="form-control">
<input type="file" name="slider[2][file]" class="thumbnailUpload">
<input type="text" value="http://www.tapiture.com/shop/collection1" name="slider[3][url]" class="form-control">
<input type="file" name="slider[2][file]" class="thumbnailUpload">
<input type="text" value="http://www.tapiture.com/shop/collection1" name="slider[3][url]" class="form-control">
</form>

我希望能够像我这样在我的行动中处理这个:

String url = form.get("slider")[0]["url"]

我试过

    RequestBody body = request().body();
    final Map<String, String[]> values = body.asFormUrlEncoded();

这样做,我只能访问像这样的值

value.get("slider[1][url]")

但是我得到了

[Ljava.lang.String;@4d36e231

HELP !!!!!!

1 个答案:

答案 0 :(得分:1)

变量包含一个映射,其中values是一个字符串数组。因此,使用 get 方法返回一个数组。要访问参数的值,请查看其中的第一个元素。

String value = values.get("slider[1][url]")[0];

我还注意到您要上传文件。在将表单的 enctype 更改为:

后,请不要忘记
<form method="POST" action="form/submit" enctype="multipart/form-data">

您可以通过以下方式访问POST数据:

final Map<String, String[]> values = body.asMultipartFormData().asFormUrlEncoded();