对象作为Play框架中表单的输入

时间:2013-04-05 12:53:35

标签: java forms playframework-2.0

Play框架的模型和表单的所有示例(我使用2.0.4)都使用StringintLong作为属性。

但是我有这样的模型:

public class MyModel {

    @Required
    public String name;

    @Required
    public Date birthdate;

    @Required
    public MyClass someObject;    
}

现在name我可以在表单中使用@inputText(...)字段。

对于birthDate我尝试在我的表单中使用@inputDate(...)字段,但这只是给我一个输入字段以及我尝试在输入字段中输入的任何日期格式,它都会被拒绝。我也尝试将'format -> "dd/mm/yyyy"传递给此字段,但没有成功。

我甚至不知道如何为表单输入MyClass对象。

  1. 如何让@inputDate()工作?
  2. 是否有必要制作 每个输入一个String / Int / Long并在控制器中接收到这些值 构造他们的MyClass对象?

1 个答案:

答案 0 :(得分:2)

回答问题编号(1)。

你可以考虑这种技巧。该模型可能如下所示:

@Required
@Formats.DateTime(pattern="dd/MM/yyyy")
public Date birthdate;

因此,您可以将视图简单化为:

@helper.inputDate(myForm("birthdate"), '_label -> "Birthdate", '_help -> "format dd/MM/yyy")

回答问题编号(2)。

据我所知,必须以StringIntLong的形式从HTML表单提交值。因为它们是在屏幕上显示信息的通用格式。此外,HTML输入值以String,'Int','Long'类型表示。


仅供参考,有一些有用的示例,如computer-database,您可以学习连接到其他课程的模型。它位于<PlayFrameworkInstallDirectory>/samples/java/computer-database