4

默认情况下,java.util.Date字段以 CRUD 形式表示为简单的“日期”输入。

public class DatedModel extends Model {

    public Date creationDate;

在 CRUD 管理员中,我看到:

creationDate           [TEXTINPUT]
                       yyyy-MM-dd format.

有什么方法可以只在选定字段上使用 DateTime 输入(并非所有字段都修改 application.conf date.format)?

有没有办法影响“自动”CRUD 管理员中的给定字段使用哪个“小部件”?

4

2 回答 2

3

在你的application.conf中有这样的东西:

module.crud=${play.path}/modules/crud
date.format=yyyy-MM-dd hh:mm:ss

然后在模型中:

package models;

import java.util.*;
import play.data.binding.As;
import play.db.jpa.*;
import play.data.validation.*;
import play.templates.*;
import play.mvc.Scope.*;
import javax.persistence.*;
import play.Logger;
import play.templates.JavaExtensions;

@Entity
public class Product extends Model {
    @As(lang={"*"}, value={"yyyy-MM-dd hh:mm:ss"}) 
    public Date creationDate;
}

你的控制器

package controllers;
import play.*;
import play.mvc.*;
import java.util.*;
import models.*;

public class Products extends CRUD {
}
于 2011-12-20T00:30:31.257 回答
2

我终于在文档中找到了我的答案:

您确实可以自定义每个字段;可以在 lunatech 博客上使用jquery数据表找到更广泛的示例,该示例还显示了如何修改分页。

#{crud.table fields:['name', 'company']}

   #{crud.custom 'company'}
     <a href="@{Companies.show(object.company.id)}">
         ${object.company.name}
     </a>
   #{/crud.custom}

#{/crud.table}

PS。

@AditSaxena 提示很好,确实是一个简单的解决方案;但不是我想要的,因为“提示”不正确是不可接受的!显然让用户感到困惑!

因此,对于日期时间输入(具体问题),我们可以结合注释(在文档中描述)

 @As(lang={"*"}, value={"yyyy-MM-dd hh:mm:ss"}) 

带有自定义提示,例如。

   #{crud.custom 'mydate'}
   <span class="crudHelp">
       Date format: etcetc.
   </span>
     ...
   #{/crud.custom}

我还要指出,您可以编写自己的验证器

其他相关的有用问题:

于 2011-12-31T09:54:23.767 回答