본문 바로가기



Springboot 02 - Controller출력 다양한 형식



springboot에서 controller을 통해서 {템플릿, 문자열, json} 브라우저에 출력하는 다양한 형식을 소개드립니다.

1. 예제 파일의 주요 구성 부분입니다.

2. { HelloController.java, hello.html, hello-template.html }  주요 파일의 소스코드입니다.

HelloController.java

public class HelloController {
    /*
    http://localhost:8080/hello로 접속하면 속성명 "data"에 
    String문자열을 담아서 hello.html파일로 넘겨줍니다.
     */
    @GetMapping("hello")
    public String hello(Model model){
        model.addAttribute("data", "[ From Server - hello!! ]");
        return "hello";
    }

    /*
    http://localhost:8080/hello-mvc?name=myName로 접속하면 속성명 "name"에 
    넘겨받은 name값을 String문자열로 담아서 hello-template.html파일로 넘겨줍니다.
     */
    @GetMapping("hello-mvc")
    public String helloMvc(@RequestParam("name") String name, Model model){
        model.addAttribute("name", name);
        return "hello-template";//templates의 html파일을 찾음
    }

    /*
   http://localhost:8080/hello-string?name=myName로 접속하면 속성명 "name"에 
   넘겨받은 name값을 String문자열로 담아서 html파일을 호출하지 않고 String자체를 브라우져에 출력해 줍니다.
    */   
    @GetMapping("hello-string")
    @ResponseBody
    public String helloString(@RequestParam("name") String name){
        return "hello " + name;//문자 그대로를 리턴 합니다.
    }

    /*
    http://localhost:8080/hello-api?name=myName로 접속하면 속성명 "name"에 
    넘겨받은 name값을 객체에 담아서 객체의 내용전체를 json형태로 변환후 json문자열을 브라우져에 출력해 줍니다.
    */
    @GetMapping("hello-api")
    @ResponseBody
    public Hello helloApi(@RequestParam("name") String name){
        Hello hello = new Hello();
        hello.setName(name);
        return hello;//객체타입으로 리턴하면 json형태로 리턴이 됩니다.
    }

    static class Hello{
        private String name;
        public String getName(){
            return name;
        }
        public void setName(String name){
            this.name = name;
        }
    }
}

hello.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p th:text="'안녕하세요.'+${data}">안녕하세요. 손님</p>
</body>
</html>

 

hello-template.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p th:text="'hello '+${name}">hello! empty</p>
</body>
</html>

3. HelloController.java 메서드별 결과출력

상세설명은 상단에 작성한 HelloController.java소스코드의 주석을 참조하세요.

@GetMapping("hello")

@GetMapping("hello-mvc")

 

 

@GetMapping("hello-string")

@GetMapping("hello-api")

6. 소스코드 파일첨부

hello-spring001.zip
0.14MB