Spring을 더 쉽게 이용하기 위한 도구
Spring을 이용할 시, 필요한 여러 가지 세팅 작업들 ( ex) 톰캣 서버 설 정, XML 설정 등 ) 없이 쉽고 빠르게 프레임워크를 사용할 수 있도록 만들어진 것
Intellij 유용한 플러그인
더보기
Atom Material Icons : 프로젝트 구조(패키지, 폴더, 파일)을 Atom ide 디자인을 입혀서 아이콘 모양을 바꿔주는 플러그인
Material Theme UI
CodeGlance Pro : 대략적인 전체적인 코드의 양을 체크하거나 위에 적어놓은 메서드를 찾을 때 유용
Grep Console : Console 출력을 상황에 맞게 색상 별로 나눠서 출력
Material Theme UI
CodeGlance Pro : 대략적인 전체적인 코드의 양을 체크하거나 위에 적어놓은 메서드를 찾을 때 유용
Grep Console : Console 출력을 상황에 맞게 색상 별로 나눠서 출력
Spring initializer
- Spring을 더 쉽게 이용하기 위한 도구
- Groovy ⇒ script 이름
- 빌드했을 때 나오는 결과물 이름 Artifact
- Lombok : 코드를 간소화시켜줌
Spring MVC
- 정적 파일
- ./src/main/resources/static => 정적 파일 위치
- 그림 같은것들..
Thymeleaf 템플릿
- 템플릿 엔진의 일종으로, html 태그에 속성을 추가해 페이지에 동적으로 값을 추가하거나 처리할 수 있게 도와주는 것
- Spring Boot 사용시 권장되는 템플릿 엔진
1. Controller 생성
1-1. java > sesac.sesacspring > controller > HelloController 생성
package sesac.sesac.spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.ArrayList;
@Controller
public class HelloController {
@GetMapping("/hi")
public String getHi(Model model) {
model.addAttribute("msg", "메세지입니다.!"); // 메시지 보내기
return "hi"; // res.render("hi"); => 렌더하기
}
}
2. Template view 생성
1-2. resources > templates > hi.html 생성
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>title</title>
</head>
<body>
<h1 th:text="${msg}"></h1>
</body>
</html>
3. Thymeleaft 기본 문법
- html 태그 안에 소 문법을 추가한다.
- 이때, 태그는 div 뿐만이 아니라 html에서 지원하는 태그들 모두 사용 가능하다.
<div th:[속성]="${서버에서 보내는 attribute 이름}"/>
th.text
- 태그 안의 텍스트를 서버에서 전달받은 값에 따라 표현하고자 할 때 사용하는 문법
<span th:text=”${msg}”></span>
th.utext
- th:text와 유사
- 변수에서 받은 값에 html 태그가 있다면 태그값을 반영해서 표시
- “<strong>안녕</strong>”값이 서버에서 넘어왔다면 <strong>이라는 글자가 나오는 것이 아닌 “안녕”이라는 글자가 <strong> 태그에 의해 굵게 표시
th.value
- Element 들의 value 값을 지정할 때 사용된다.
<button th:value=”${hello}”/>
th.with
- 변수 값을 지정해서 사용하고자 할 때 사용된다.
<span th:with="msg2='안녕? ' + ${msg}" th:text="${msg2}"></span>
- thymeleaf안에서만 사용되는 msg2라는 변수를 만든 것!
th:switch
- Switch-case 문을 이용할 때 사용되는 문법
- th:case 에서 case 문을 다루고, *로 case문에서 다루지 않은 모든 경우가 처리 된다.( *는 일반 문법에서의 default)
<div th:switch="${hello}">
<p th:case="'admin'">hello is admin</p>
<p th:case="'manager'">hello is manager</p>
<p th:case="'*'">hello is other</p>
</div>
th:if
- 조건문이 필요할 때 사용되는 문법
- Else 문이 필요한 경우에는 th:unless를 사용한다.
<p th:if="${hello} == 'web'" th:text="${hello}+'입니다.'"></p>
<p th:unless="${age} == 'web'" th:text="unless입니다."></p>
th:each
- 반복문이 필요할 때 사용되는 문법
- 리스트와 같은 collection 자료형을 서버에서 넘겨주면 그에 맞춰 반복적인 작업이 이루어질 때 사용된다.
// Person.java
package sesac.sesac.spring.controller;
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
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 int show(int age) {
return age+1;
}
}
// PeopleController
@GetMapping("/people")
public String getPeople(Model model) {
ArrayList<Person> list = new ArrayList<>();
list.add(new Person("kim", 10));
list.add(new Person("lee", 20));
list.add(new Person("soo", 35));
list.add(new Person("kwon", 26));
model.addAttribute("people", list);
return "people";
}
// people.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1">
<thead>
<th>이름</th>
<th>나이</th>
</thead>
<tbody>
<tr th:each="p:${people}">
<td th:text="${p.getName()}">kim</td>
<td th:text="${p.age}">kim</td>
</tr>
</tbody>
</table>
</body>
</html>
'Sesac 웹 풀스택[새싹X코딩온] > Spring' 카테고리의 다른 글
6. JPA(Java Persistence API) 및 실습 (0) | 2023.03.16 |
---|---|
5. JDBC, MyBatis 연결 (0) | 2023.03.16 |
4. GET, POST 방식 및 DTO, VO 전송 (0) | 2023.03.16 |
3. Rest API 정의(DTO,VO, Annotation) (0) | 2023.03.11 |
1. Spring framework 특징 (0) | 2023.03.09 |