인프런 커뮤니티 질문&답변

gmldnjs0402님의 프로필 이미지

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

유틸리티 객체와 날짜

유틸리티 배열 활용

24.03.13 01:09 작성

·

125

0

#array.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<h1>Arrays</h1>
<ul>
  <li>username = <span th:text="${userA.username}"></span></li>
  <li>age = <span th:text="${userA.age}"></span></li>
</ul>
<h1>LocalDateTime - Utils</h1>
<ul>
  <li>${#arrays.toStringArray(userA)} = <span th:text="${#arrays.toStringArray(userA)}"></span></li>
  <li>${#arrays.toIntegerArray(userA)} = <span th:text="${#arrays.toIntegerArray(userA)}"></span></li>
  <li>${#arrays.toLongArray(userA)} = <span th:text="${#arrays.toLongArray(userA)}"></span></li>
  <li>${#arrays.toDoubleArray(userA)} = <span th:text="${#arrays.toDoubleArray(userA)}"></span></li>
  <li>${#arrays.toFloatArray(userA)} = <span th:text="${#arrays.toFloatArray(userA)}"></span></li>
  <li>${#arrays.toBooleanArray(userA)} = <span th:text="${#arrays.toBooleanArray(userA)}"></span></li>
</ul>
</body>
</html>
@GetMapping("/array")
public String array(Model model) {
    User userA = new User("userA", 10);
    User userB = new User("userB", 20);

    model.addAttribute("userA", userA);
    model.addAttribute("userB", userB);

    return "basic/array";
}

@Data
static class User {
    private String username;
    private int age;

    public User(String username, int age) {
        this.username = username;
        this.age = age;
    }
}

이렇게 했을 때

Caused by: java.lang.IllegalArgumentException: Cannot convert object of class "hello.thymeleaf.basic.BasicController$User" to an array of Class

 

이런 에러가 뜨는데 왜 에러가 발생하며, 어떻게 활용하면 될까요?

답변 1

0

codesweaver님의 프로필 이미지

2024. 03. 14. 15:51

안녕하세요. gmldnjs0402님, 공식 서포터즈 코즈위버입니다.

작성하신 코드가 어떤의도인지 알 수 없습니다.

타임리프에서 User 를 활용하기 위해선 Model에 설정한 이름 ("userA", "userB")를 이용해야 합니다.

그리고 이 객체는 User 객체이지 배열이 아니므로 배열관련 기능을 이용하실 수 없습니다.

감사합니다.