스프링/4. 스프링 MVC-2

83. 스프링이 제공하는 기본 포맷터

sdafdq 2023. 9. 24. 04:19

많은 기본 포맷터들을 제공해주고, 또 아예 등록되면서 시작되는 것 들도 있다.

 

 

근데, 사실 객체마다 특정 포맷으로 맞추는 것은 사실 굉장히 번거로운 일이다.

 

그래서, 스프링은 애노테이션으로써 포맷팅의 옵션을 지정할 수 있도록 지원을 해 준다.

 

@NumberFormat :  숫자 관련 포맷

@DateTimeFormat :  날짜 관련 포맷

 

 

 

@Data
static class Form{
    @NumberFormat(pattern = "###,###")
    private Integer number;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime localDateTime;
}

이렇게 대상의 필드에 써 주면 된다.

 

 

아마 숫자는 양옆으로 자릿수? ###,###

근데 이거는 ,### 이렇게만 해도 된다.

뒤에 셋, 그 다음 콤마 

 

날짜 포맷은

yyyy : 년

MM : 월, minutes인 mm과 구분하기 위해 대문자

dd : 일

 

HH : Hour, 시간

mm : 분

ss : 초

 

 

 

@GetMapping("/formatter/edit")
public String formatterForm(Model model){
    Form form = new Form();
    form.setNumber(10000);
    form.setLocalDateTime(LocalDateTime.now());
    model.addAttribute("form", form);

    return "formatter-form";
}

 

 

<form th:object="${form}" th:method="post">
    number <input type="text" th:field="*{number}"><br/>
    localDateTime <input type="text" th:field="*{localDateTime}"><br/>
    <input type="submit"/>
</form>

th:field는 알아서 포맷팅 되고,

 

의도한 대로 나타남.