분류 전체보기 85

반복

타임리프에서 반복은 th:each 를 사용한다. 추가로 반복에서 사용할 수 있는 여러 상태 값을 지원 @GetMapping("/each") public String each(Model model) { addUsers(model); return "basic/each"; } private void addUsers(Model model) { List list = new ArrayList(); list.add(new User("userA", 10)); list.add(new User("userB", 20)); list.add(new User("userC", 30)); model.addAttribute("users", list); } 기본 테이블 username age username 0 반복 상태 유지 coun..

Java/Thymeleaf 2021.12.03

속성 값 설정

타임리프 태그 속성(Attribute) 타임리프는 주로 HTML 태그에 th:* 속성을 지정하는 방식으로 동작한다. th:* 로 속성을 적용하면 기존 속성을 대체한다. 기존 속성이 없으면 새로 만든다. @GetMapping("/attribute") public String attribute() { return "basic/attribute"; } 속성 설정 속성 추가 - th:attrappend = - th:attrprepend = - th:classappend = checked 처리 - checked o - checked x - checked=false 속성 설정 속성 추가 - th:attrappend = - th:attrprepend = - th:classappend = checkd 처리 - chec..

Java/Thymeleaf 2021.12.03

연산

HTML안에서 사용하기 때문에 HTML 엔티티를 사용하는 부분만 주의 @GetMapping("/operation") public String operation(Model model) { model.addAttribute("nullData", null); model.addAttribute("data", "Spring!"); return "basic/operation"; } 산술 연산 10 + 2 = 10 % 2 == 0 = 비교 연산 1 > 10 = 1 gt 10 = 1 >= 10 = 1 ge 10 = 1 == 10 = 1 != 10 = 조건식 (10 % 2 == 0)? '짝수':'홀수' = Elvis 연산자 ${data}?: '데이터가 없습니다.' = ${nullData}?: '데이터가 없습니다.' = ..

Java/Thymeleaf 2021.12.03

리터럴

Literals 리터럴은 소스 코드상에 고정된 값을 말하는 용어 "Hello" 는 문자 리터럴 10 , 20 는 숫자 리터럴 String a = "Hello" int a = 10 * 20 Thymeleaf의 리터럴 문자: 'hello' 숫자: 10 불린: true , false null: null Thymeleaf 에서의 문자 리터럴은 항상 ' (작은 따옴표)로 감싸야 한다. rule = A-Z , a-z , 0-9 , [] , . , - , _ 공백 없이 쭉 이어진다면 하나의 의미있는 토큰으로 인지해서 다음과 같이 작은 따옴표를 생략 가능 ! 오류 - error 발생 문자 리터럴은 원칙상 ' ' 로 감싸야 한다. 중간에 공백이 있어서 하나의 의미있는 토큰으로도 인식되지 않는다. 수정 이렇게 ' 로 감싸..

Java/Thymeleaf 2021.12.02

URL 링크

타임리프에서 URL을 생성할 때는 @{...} 문법을 사용 @GetMapping("/link") public String link(Model model) { model.addAttribute("param1", "data1"); model.addAttribute("param2", "data2"); return "basic/link"; } URL 링크 basic url hello query param path variable path variable + query parameter 단순한 URL @{/hello} /hello 쿼리 파라미터 @{/hello(param1=${param1}, param2=${param2})} - /hello?param1=data1&m2=data2 - () 에 있는 부분은 쿼리 파..

Java/Thymeleaf 2021.12.02

유틸리티 객체와 날짜

타임리프는 문자, 숫자, 날짜, URI등을 편리하게 다루는 다양한 유틸리티 객체들을 제공 타임리프 유틸리티 객체들 #message : 메시지, 국제화 처리 #uris : URI 이스케이프 지원 #dates : java.util.Date 서식 지원 #calendars : java.util.Calendar 서식 지원 #temporals : 자바8 날짜 서식 지원 #numbers : 숫자 서식 지원 #strings : 문자 관련 편의 기능 #objects : 객체 관련 기능 제공 #bools : boolean 관련 기능 제공 #arrays : 배열 관련 기능 제공 #lists , #sets , #maps : 컬렉션 관련 기능 제공 #ids : 아이디 처리 관련 기능 제공, 뒤에서 설명 이런 유틸리티 객체들은 ..

Java/Thymeleaf 2021.12.02

기본 객체들

타임리프는 기본 객체들을 제공 ${#request} ${#response} ${#session} ${#servletContext} ${#locale} #request 는 HttpServletRequest 객체가 그대로 제공되기 때문에 데이터를 조회 request.getParameter("data") 처럼 불편하게 접근 HTTP 요청 파라미터 접근: param 예) ${param.paramData} HTTP 세션 접근: session 예) ${session.sessionData} 스프링 빈 접근: @ 예) ${@helloBean.hello('Spring!') @GetMapping("/basic-objects") public String basicObjects(HttpSession session) { ses..

Java/Thymeleaf 2021.12.02

텍스트 - text, utext

텍스트를 출력하는 기능 text 타임리프는 기본적으로 HTML 테그의 속성에 기능을 정의해서 동작한다. @Controller @RequestMapping("/basic") public class BasicController { @GetMapping("/text-basic") public String textBasic(Model model) { model.addAttribute("data", "Hello Spring!"); return "basic/text-basic"; } } HTML의 콘텐츠(content)에 데이터를 출력 HTML 테그의 속성이 아니라 HTML 콘텐츠 영역안에서 직접 데이터를 출력 컨텐츠 안에서 직접 출력하기 = [[${data}]] 컨텐츠에 데이터 출력하기 th:text 사용 컨텐츠..

Java/Thymeleaf 2021.12.01

[ERROR] MySQL ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

mysql -u root -p create user 'ostechnix'@'localhost' identified by 'mypassword'; our password does not satisfy the current policy requirements SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | va..

Database 2021.11.25