gpt4 book ai didi

java - 日期时间字段 validator

转载 作者:行者123 更新时间:2023-11-29 07:15:21 25 4
gpt4 key购买 nike

我创建了一个自定义 validator 来验证 dateTimefield。我的问题是我无法将其添加到日期时间字段变量

The method add(IValidator<? super Date>) in the type FormComponent<Date> is not applicable for the arguments (DateTimeFieldValidator)

这是我遇到的错误。

是否有任何标准方法来验证 DateTimeField?

package validators;

import java.text.ParsePosition;
import java.text.SimpleDateFormat;


import org.apache.wicket.extensions.yui.calendar.DateTimeField;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
import org.apache.wicket.validation.ValidationError;


public class DateTimeFieldValidator implements IValidator<DateTimeField> {
/**
*
*/
private static final long serialVersionUID = 2342344609244L;
public DateTimeFieldValidator() {

}



private void error(IValidatable<DateTimeField> validatable, String errorKey) {
ValidationError error = new ValidationError();
error.addMessageKey(getClass().getSimpleName() + "." + errorKey);
validatable.error(error);
}


public void validate(IValidatable<DateTimeField> validatable) {


DateTimeField dateTime = (DateTimeField) validatable.getValue();

if ( dateTime== null){
error(validatable, "invalid.datetime");
}
else{

if( dateTime.getHours()!=null){
if( dateTime.getHours()>12 || dateTime.getHours()<0){

error(validatable, "invalid.hour");
}
}
else{
error(validatable, "invalid.hour");
}


if(dateTime.getMinutes()!=null){
if( dateTime.getMinutes() > 60 ){

error(validatable, "invalid.hour");
}
}else {
error(validatable, "invalid.minutes");
}

if( dateTime.getDate() == null ){
error(validatable, "invalid.date");
}

}
}
boolean isLegalDate(String s) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
return sdf.parse(s, new ParsePosition(0)) != null;
}

}

这就是我添加 validator 的方式。

startDateTimeField.add(new DateTimeFieldValidator());

最佳答案

您的 DateTimeFieldValidator 必须实现 IValidator<Date>而不是 IValidator<DateTimeField>

关于java - 日期时间字段 validator ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com