2014-09-10 69 views
0

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

例子:

<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

变量包含一个映射,其中值是一个字符串数组。所以用得到方法返回一个数组。要访问参数的值,请查看它的第一个元素。

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();