본문 바로가기
Thymeleaf

13. Thymeleaf의 객체와 컨트롤러와의 상호작용 - 3

by leo2114 2024. 2. 24.
반응형

메소드 호출

Thymeleaf에서는 메소드 호출을 통해 동적으로 데이터를 처리하고 웹 페이지를 렌더링할 수 있습니다. 이번 챕터에서는 Thymeleaf에서 메소드 호출을 사용하는 방법에 대해 알아보겠습니다.

1. 메소드 호출 기본 구문

Thymeleaf에서는 @{...} 기호를 사용하여 메소드를 호출할 수 있습니다. 메소드 호출은 컨트롤러나 서비스 클래스에서 정의된 메소드를 호출하여 결과를 화면에 표시하는 데 사용됩니다.

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Method Invocation</title>
</head>
<body>
    <h1>Method Invocation</h1>
    <p th:text="${@myService.generateMessage()}">Dynamic Message</p>
</body>
</html>

 

위의 예제에서는 myService라는 서비스 클래스의 generateMessage() 메소드를 호출하여 반환된 결과를 화면에 표시합니다.

2. 메소드 호출 시 인자 전달

메소드를 호출할 때 인자를 전달할 수도 있습니다. 이를 통해 동적으로 처리되는 데이터를 더욱 유연하게 다룰 수 있습니다.

@Service
public class MyService {

    public String generateMessage(String name) {
        return "Hello, " + name + "!";
    }
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Method Invocation</title>
</head>
<body>
    <h1>Method Invocation with Argument</h1>
    <p th:text="${@myService.generateMessage('John')}">Dynamic Message</p>
</body>
</html>

 

위의 예제에서는 generateMessage() 메소드에 인자로 'John'을 전달하여 호출하고 있습니다.

3. 코드 예제

다음은 메소드 호출을 사용하는 Thymeleaf 템플릿의 간단한 예제입니다.

@Controller
public class MyController {

    @Autowired
    private MyService myService;

    @GetMapping("/dynamicMessage")
    public String dynamicMessage(Model model) {
        model.addAttribute("myService", myService);
        return "dynamicMessage";
    }
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Dynamic Message</title>
</head>
<body>
    <h1>Dynamic Message</h1>
    <p th:text="${@myService.generateMessage()}">Dynamic Message without Argument</p>
    <p th:text="${@myService.generateMessage('John')}">Dynamic Message with Argument</p>
</body>
</html>

 

위의 예제에서는 컨트롤러에서 MyService 클래스의 인스턴스를 Thymeleaf 템플릿으로 전달하여 메소드 호출을 수행하는 방법을 보여주고 있습니다. 메소드 호출을 통해 동적으로 데이터를 처리하는 것은 Thymeleaf의 강력한 기능 중 하나이며, 웹 애플리케이션의 유연성을 높여줍니다.

반응형