如何在播放框架中将日期验证限制设置为32

时间:2015-03-08 02:42:39

标签: playframework playframework-2.3

我正在尼泊尔开发一个应用程序,所以我必须按照当地时间和尼泊尔日历存储日期。根据尼泊尔日历,日期限制为32 “32/12/2015”。将日期绑定到31时没有问题,因为我经历了32,它在表单中显示“error.invalid”错误。 是否有任何解决方案将日期限制为32。 抱歉语法错误,并提前致谢...

1 个答案:

答案 0 :(得分:0)

您没有提及您用于开发应用的语言。

在Java中,您可以创建自定义数据格式化程序来绑定表单中的值。以下是如何编写一个的示例:

package example.formatters;

import play.data.format.Formatters.SimpleFormatter;    
import java.util.Date;

public class DateFormatter extends SimpleFormatter<Date>{

    @Override
    public Date parse(String value, Locale locale) throws ParseException {

        if (value == null || value.length() == 0) {
            return null;
        }

        if(isStringDate(value)){
            return convertStringToDate(value);
        }

        throw new ParseException(value, 0); //throw exception if value is not proper date
    }    

    @Override
    public String print(Date d, Locale locale) {
        return convertDateToString(d);
    }
}

实现自定义格式化程序后,您需要将其注册为数据类型(例如,在应用程序的Global类中):

package app;

import play.GlobalSettings;
import play.Logger;
import java.util.Date;
import example.formatters.DateFormatter;

public class Global extends GlobalSettings {

    @Override
    public void onStart(Application app) {
        Formatters.register(java.util.Date.class, new DateFormatter());
    }

}