【发布时间】:2013-11-08 11:52:07
【问题描述】:
我试图在我的控制器中获取一个选定的值,但无法让它工作。
在我看来,我有一个表格:
@(infoObjectForm: Form[Infoobject],nav: String = "")
@form(routes.Admin.admin_createMapInstance()) {
<fieldset>
@select(
infoObjectForm("infoobjectId"),
options(Infoobject.all_values),
'id -> "infoobjects_field",
'_label -> "Infoobject", '_default -> "--Select Infoobject--",
'_showConstraints -> false, 'value -> infoObjectForm
)
</fieldset>
<div class="actions">
<input type="submit" value="Create this Map Instance" class="btn primary"> or
<a href="@routes.Admin.admin_MapInstance()" class="btn">Cancel</a>
</div>
}
此下拉列表显示我的所有信息对象。当我选择一个并点击提交按钮时,我想在控制器中使用选定的信息对象(及其属性)。
Form<Infoobject> mapForm = form(Infoobject.class).bindFromRequest();
if(mapForm.hasErrors()) {
flash("error", "MapForm contains an error");
return badRequest(createMapForm.render(mapForm, ""));
}
Infoobject infoobject = mapForm.get();
String desig = infoobject.getDesignation();
String desc = infoobject.getDescription();
...
mapForm 有错误。你们知道为什么吗?
信息对象模型:
@Entity
public class Infoobject extends Model {
@Id
@SequenceGenerator(name="infoobject_seq", sequenceName="infoobject_id_seq", allocationSize=1000)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="infoobject_seq")
public Long infoobjectId;
@Required
public String designation;
@Required
public String description;
...getters/setters
我尝试在我的视图中使用两个@inputText 字段,这样我就可以创建一个信息对象,这很有效。但现在我不想创建现有信息对象的地图实例。
感谢您的帮助!
编辑: 在控制台中打印错误,说“error.required”。任何人?该表单似乎不包含任何信息对象。找到this simular question/answer..那么为什么这不起作用?
【问题讨论】:
-
您的模型中可能还有其他字段或字段名称不匹配...也许显示您的
Infoobject模型代码 -
你能展示一下 Infoobject 模型吗?
标签: java model-view-controller playframework playframework-2.0