@DateTimeFormat не преобразует дату при отправке ответаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 @DateTimeFormat не преобразует дату при отправке ответа

Сообщение Anonymous »

У меня есть приложение Spring MVC (без загрузки). Я использую Spring MVC 6.
Я пытаюсь изучить тег @ResponseBody, создал объект своего класса bean-компонента в контроллере и отправил его в ответ.
Элемент даты был помечен аннотацией @DateTimeFormat, но при отправке ответа я не получаю его в определенном формате.
User.java :

Код: Выделить всё

package com.habib.beans;

import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

public class User {
private int id;
private String name;
private int age;
private double marks;
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
private Date dob;
private Address address;

public User(int id, String name, int age, double marks, Date dob, Address address) {
this.id = id;
this.name = name;
this.age = age;
this.marks = marks;
this.dob = dob;
this.address = address;
}

@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", marks=" + marks +
", dob=" + dob.toLocaleString() +
", address=" + address +
'}';
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public double getMarks() {
return marks;
}

public void setMarks(double marks) {
this.marks = marks;
}

public Date getDob() {
return dob;
}

public void setDob(Date dob) {
this.dob = dob;
}

public Address getAddress() {
return address;
}

public void setAddress(Address address) {
this.address = address;
}
}

FirstController.java

Код: Выделить всё

package com.habib.controllers;

import com.habib.beans.Address;
import com.habib.beans.City;
import com.habib.beans.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.GregorianCalendar;

@Controller
public class FirstController {
@RequestMapping(value = "/first", method = RequestMethod.GET)
@ResponseBody
public User first(ModelMap map) {

User user =  new User(101,"Ali Asger Habib", 24, 98.54,
new GregorianCalendar(2000, GregorianCalendar.MAY, 7).getTime(),
new Address(23, "Fatehpura", new City("Udaipur", "Rajasthan", "India"), 313001));

System.out.println(user);
map.addAttribute("user", user);
return user;
}
}
Я получаю следующий ответ:

Код: Выделить всё

{
"id": 101,
"name": "Ali Asger Habib",
"age": 24,
"marks": 98.54,
"dob": 957637800000,
"address": {
"houseNo": 23,
"location": "Fatehpura",
"city": {
"cityName": "Udaipur",
"state": "Rajasthan",
"country": "India"
},
"pincode": 313001
}
}
Я не уверен, почему DOB не поставляется в определенном формате.
Я понимаю, что использование @JsonFormat может решить мою проблему, но я хочу узнать, почему @DateTimeFormat не работает в в этом случае.
Кроме того, когда я пытаюсь использовать страницу просмотра в JSP, я все равно вижу ее не в определенном формате, а в формате по умолчанию класса Date.
Работает ли @DateTimeFormat только при синтаксическом анализе запрос или он работает в обе стороны.

Подробнее здесь: https://stackoverflow.com/questions/782 ... g-response
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»