问题是将数据从表单(或从参数Map)绑定到实际的Form对象.我添加了一些println仅用于测试目的.这是Controller类的代码.
package controllers;
import java.util.List;
import javax.inject.Inject;
import models.Product;
import play.data.Form;
import play.data.FormFactory;
import play.mvc.Controller;
import play.mvc.Result;
import views.html.products.list;
import views.html.products.details;
public class Products extends Controller {
@Inject
public Products(FormFactory formFactory) {
productForm = formFactory.form(Product.class);
}
private static Form<Product> productForm;
public Result list(){
List<Product> products = Product.findAll();
return ok(list.render(products));
}
public Result newProduct(){
return ok(details.render(productForm));
}
public Result save(){
Form<Product> filledForm=productForm.fill(new Product("0000","0000","0000"));
Form<Product> boundForm=productForm.bindFromRequest();
final Product product =(Product) boundForm.get();
System.out.println(">>Bound ean form data: "+boundForm.field("ean").value()+"->Product from bound form: "+boundForm.get()); …Run Code Online (Sandbox Code Playgroud)