当我将 manytoone 字段添加到我的模型“项目”并尝试绑定(bind)相应的表单时出现此错误。
Execution exception
[IllegalStateException: No value] at line 31
=> Item item = itemForm.bindFromRequest().get();
“项目”模型: 封装模型;
@Entity
public class Item extends Model {
@Id
public Long id;
@ManyToOne
@Constraints.Required
@Formats.NonEmpty
public Category category;
@Constraints.Required
public String title;
@Constraints.Required
public String content;
public String picture;
(..)
}
表单查看:
@helper.form(action = routes.Application.newItem(), 'id -> "item_form", 'method -> "POST", 'enctype -> "multipart/form-data"){
<fieldset>
@helper.inputText(
itemForm("title"),
'_label -> "Titre" )
@helper.select(
itemForm("category"),
helper.options(Category.list),
'_label -> "Categorie")
@helper.textarea(
itemForm("content"),
'_label -> "Description")
@helper.inputFile(
field = itemForm("picture"),
'_display -> "Attachment",
'_label -> Messages("Image") )
<input type="submit" value="Ajouter">
</fieldset>
}
控制者:
public static Result newItem(){
Item item = itemForm.bindFromRequest().get(); //SOMETHING GO WRONG HERE
MultipartFormData body = request().body().asMultipartFormData();
FilePart picture = body.getFile("picture");
if (picture != null) {
(...)
}
else{
(...)
}
}
最佳答案
类别字段的表单 View 应该是,考虑到类别模型有 id 字段。
@helper.select(
itemForm("category.id"),
helper.options(Category.list),
'_label -> "Categorie")
关于java - 在 Play Framework 2 上使用 ManyToOne 字段绑定(bind)表单请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11802566/