2013-12-13 23 views
-1

我有以下的用戶界面:發揮框架 - 表單提交的,並顯示結果(字符串列表)

<form class="form-horizontal" role="form"> 
      <div class="form-group"> 
       <label class="col-sm-1 control-label"> <b><font size="4">Brand:</font></b> 
       </label> 
       <div class="col-sm-4"> 
        <select class="form-control"> 
         <option value="one">-</option> 
         <option value="two">BrandOne</option> 
         <option value="three">BrandTwo</option> 
         <option value="four">BrandThree</option> 
        </select> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label class="col-sm-1 control-label"> <b><font size="4">Price:</font></b> 
       </label> 
       <div class="col-sm-4"> 
        <select class="form-control"> 
         <option value="one">-</option> 
         <option value="two">1000 - 10000</option> 
         <option value="three">10000 - 50000</option> 
         <option value="four">50000 - 100000</option> 
        </select> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label class="col-sm-1 control-label"> <b><font size="4">Miles:</font></b> 
       </label> 
       <div class="col-sm-4"> 
        <select class="form-control"> 
         <option value="one">-</option> 
         <option value="two">0 - 1000</option> 
         <option value="three">1000 - 20000</option> 
         <option value="four">20000 - 100000</option> 
        </select> 
       </div> 
      </div> 
     </form> 
     <button type="button" id="searchBtn" class="btn btn-default">Search</button> 

我要做到以下幾點:按搜索按鈕時,已選定值後應提交三種表格(品牌,價格,英里數)。經過一些處理後,我想返回一個字符串列表,遍歷列表並顯示結果列表中的值(見下文)。

我有兩個問題: 1.如何提交三個選擇的值? 2.如何返回List,迭代它並將字符串存儲在結果列表中?

<div class="well"> 
<ul class="list-group" id="resultList"> 
    <!-- result should be here --> 
</ul> 
</div> 

感謝您的幫助!

回答

3

所有你郵遞的可以在這樣的控制器來獲得PARAMS:

Map<String,String[]> params = request().body().asFormUrlEncoded(); 

調試的,你居然收到我用這樣的行動:

public static Result outputPostParams(){ 
    Map<String,String[]> params = request().body().asFormUrlEncoded(); 
    StringBuilder sb = new StringBuilder(); 
    for(String s: params.keySet()){ 
     sb.append(s).append("\n"); 
     for(String subs:params.get(s)){ 
      sb.append("- ").append(subs).append("\n"); 
     } 
    } 
    return ok(sb.toString()); 
} 

爲了使其工作不要忘了在路線定義路由文件:

POST /brands controllers.Application.outputPostParams() 

並添加路線以形成動作:

<form method="POST" action="@routes.Application.outputPostParams()" class="form-horizontal" role="form"> 
+0

thx,它幫了很多! – user3100944

+0

很好的回答!你怎麼知道'Map params = request().body()。asFormUrlEncoded();'?我無法在Play中找到任何信息! Java窗體文檔...這實際上是我發現處理輸入數組的唯一方式(請參閱我的問題http://stackoverflow.com/q/25760215/2523628)。 –

相關問題