播放框架 - 提交表单并显示结果(字符串列表)

时间:2013-12-13 22:14:14

标签: java forms playframework playframework-2.0

我有以下用户界面:

<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>

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

收到的所有POST参数都可以通过以下方式在控制器中获取:

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">