Java 弹簧靴;胡子格式化日期
我正在尝试创建一个Spring启动应用程序,但遇到了一个无法正确修复的问题。我正在使用JPA存储库来使用SQL数据库,我想保存用户的出生日期,但我不知道如何在通过Mustach模板显示日期时格式化日期(如dd/MM/yyyy) 这是我的代码: 实体:Java 弹簧靴;胡子格式化日期,java,spring,spring-boot,date,Java,Spring,Spring Boot,Date,我正在尝试创建一个Spring启动应用程序,但遇到了一个无法正确修复的问题。我正在使用JPA存储库来使用SQL数据库,我想保存用户的出生日期,但我不知道如何在通过Mustach模板显示日期时格式化日期(如dd/MM/yyyy) 这是我的代码: 实体: @Entity public class User{ ... @DateTimeFormat(pattern = "dd/MM/yyyy") private Date birthDate; ... } 控制器: @Contro
@Entity
public class User{
...
@DateTimeFormat(pattern = "dd/MM/yyyy")
private Date birthDate;
...
}
控制器:
@Controller
public class UserController(){
@GetMapping("/admin/user/list")
public String userList(Model model){
List<User> userList = userRepository.findAll();
model.addAttribute("userList", userList);
return "/admin/user/list";
}
...
}
@控制器
公共类UserController(){
@GetMapping(“/admin/user/list”)
公共字符串用户列表(模型){
List userList=userRepository.findAll();
model.addAttribute(“userList”,userList);
返回“/管理员/用户/列表”;
}
...
}
视图:
...
Fecha de nacimiento:{{formatBirthDate}}
...
谢谢大家的帮助 Spring Boot使用JMustache作为胡须文件的模板引擎。默认情况下,JMustache在呈现模板时使用
String.valueOf
将对象转换为字符串
因此,注释被忽略,日期仅转换为:
jshell>String.valueOf(new java.util.Date())
$2==>“欧洲中部时间2021年3月9日星期二23:29:23”
有几个解决方案有自己的权衡:
- 将
实例映射到一个用户
,该模型的出生日期格式正确,为用户视图模型
,并返回这些实例,而不是JPA实体字符串
- 通过注册自己的
或mustacheviewsolver
请参阅这些链接以获取参考:Mustache添加用户定义的对象格式化程序。编译器
令人惊讶的答案!谢谢!!
<html>
...
<strong>Fecha de nacimiento:</strong> {{ formatBirthDate }}<br>
...
</html>
Mustache.compiler().withFormatter(new Mustache.Formatter() {
public String format (Object value) {
if (value instanceof Date) return _fmt.format((Date)value);
else return String.valueOf(value);
}
protected DateFormat _fmt = new SimpleDateFormat("yyyy/MM/dd");
});