0

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

但是我有一个这样的模型:

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它们的对象?
4

1 回答 1

2

回答问题编号 (1)。

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

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

因此,您可以使您的视图变得如此简单:

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

回答问题编号 (2)。

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


仅供参考,有一个有用的示例,computer-database您可以学习与其他课程相关的模型。它位于<PlayFrameworkInstallDirectory>/samples/java/computer-database

于 2013-04-06T02:50:02.327 回答