2014-09-10 6 views
0

Новое в PlayFramwork и работает в блокпост. В руководстве по @https://www.playframework.com/documentation/2.3.x/JavaForms показаны формы обработки путем привязки входных данных формы к классу. Тем не менее, я хочу обработать HTML-форму без привязки моих полей к классу.Play Framework: Обработка параметров POST?

Пример моей формы:

<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

Величина значения содержит карту, где значения представляют собой массив строк. Таким образом, метод 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(); 
Смежные вопросы