gpt4 book ai didi

java - 自定义 Struts 类型转换器不工作

转载 作者:行者123 更新时间:2023-11-30 08:35:00 25 4
gpt4 key购买 nike

我确实有一个用于 Date 变量的 getter/setter,如下所示:

private Date registrationDate;

@TypeConversion(converter = "org.com.helper.DataHelper")
public Date getRegistrationDate() {
return registrationDate;
}

@TypeConversion(converter = "org.com.helper.DataHelper")
public void setRegistrationDate(Date registrationDate) {
this.registrationDate = registrationDate;
}

如您所见,我创建了一个自定义 struts 转换器,用于将传入的字符串转换为 Date 格式,然后对其进行分配。但这似乎不起作用。这是 DateHelper 的代码:

public class DateHelper extends StrutsTypeConverter {

private static final DateFormat FORMAT = new SimpleDateFormat("dd-MM-yyyy");

@Override
public Object convertFromString(Map arg0, String[] values, Class arg2) {
try {
System.out.println(values[0]+"called from datahelper");

return FORMAT.parse(values[0]);
} catch (Exception e) {
throw new TypeConversionException(e.getMessage());
}
}

@Override
public String convertToString(Map arg0, Object value) {
try {
return FORMAT.format(value);
} catch (Exception e) {
throw new TypeConversionException(e.getMessage());
}
}

}

我使用struts2-json 插件来获取和解析表单数据。该插件会自动分配所有字符串值,但我对 Date 确实有疑问。

这就是我如何从表单中获取传递给 Java 的数据。

{"data":{"recordId":"123","registrationDate":"20-07-2016","hisId":"","herId":"","lastNameHe":"Asd","firstNameHe":"Asd","middleNameHe":"Asd","workPlaceHe":"","educationHe"}}

因此,根据我的理解,开始设置 registrationDate 之前的代码应该调用辅助类并将字符串转换为 date 然后调用 registrationDate setter.. 但它似乎不起作用.. 我什至在辅助代码中加入了一个 log 调用,但它没有出现在 eclipse 中。

最佳答案

似乎 struts2-json-plugin 不使用默认类型转换。 :(

要设置日期格式,您可以使用具有 format 属性的 @JSON 注释。

@JSON(format = "dd.MM.yyyy")
public void setRegistrationDate(Date registrationDate) {
this.registrationDate = registrationDate;
}

JSON 插件文档 - Customizing Serialization and Deserialization .

关于java - 自定义 Struts 类型转换器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38494627/

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