我是Play2的新手(我已经使用Play1开发了一个项目),我遇到了来自请求的表单绑定问题.
关于表单的文档非常简单.
关于表单的文档非常简单.
这是我的控制器的代码:
- private final static Form<Estimation> estimationForm = form(Estimation.class);
- /**
- * Get an estimation by form
- * @return
- */
- public static Result estimation() {
- return ok(views.html.rate.estimation.render(
- estimationForm,City.findAll()
- ));
- }
- /**
- * Display estimation results
- * @return
- */
- public static Result results() {
- if (request().method().equals("POST")) {
- Form<Estimation> form = estimationForm.bindFromRequest();
- if (form.hasErrors()) {
- System.out.println(form.errorsAsJson().toString());
- return ok(views.html.rate.estimation.render(
- form
- City.findAll()
- ));
- }
- else {
- System.out.println(form.get());
- return ok(views.html.rate.results.render(
- ));
- }
- }
- else {
- return estimation();
- }
- }
我在选择中显示城市:
- <select id="city" name="city">
- <option value="1">Paris,France</option>
- <option value="2">Lyon,France</option>
- <option value="3">Marseille,France</option>
- <option value="4">Barcelona,Spain</option>
- <option value="5">Berlin,Germany</option>
- </select>
当我提交表单时,我有以下错误:
{“city”:[“无效的值”]}
所以这是我的问题:绑定器似乎适用于简单字段(例如我的模型中的String属性),但是@ManyToOne关系呢?
谢谢.
解决方法
将选择字段的名称设置为name =“city.id”