핵심은 th:xxx 가 붙은 부분은 서버사이드에서 렌더링 되고, 기존 것을 대체한다.th:xxx 이 없으면 기존 html의 xxx 속성이 그대로 사용된다.HTML을 파일로 직접 열었을 때, th:xxx 가 있어도 웹 브라우저는 th: 속성을 알지 못하므로 무시한다.따라
텍스트 - text, utext 내용 변경 : th:text , [[…]] th:text 내용의 값을 th:text 의 값으로 변경한다. 여기서는 ‘텍스트’을 ${data} 의 값으로 변경한다. [[…]] [[…]] 안에 있는 데이터를 직접 출력할 수 있다.
연산 1. 산술 연산 2. 비교 연산 > > , gt (greater) = > ge (greater or equal) = >= lt (little) = ` - String data = “Spring”; String nullData = null; (출력) S
타임리프가 제공하는 기본 객체${- ${- ${- ${- \`${HTTP 요청 파라미터 접근: paramHTTP 세션 접근: session스프링 빈에 직접 접근: @(출력)Request Parameter = HelloParamsession = Hello Sessions
th:xxx 에 속성을 지정하는 방식으로 동작한다.name="mock" 을 th:name="userA" 의 값으로 변경한다.타임리프 뷰 템플릿을 거치게 되면 원래 값( xxx )을 th:xxx 값으로 변경한다.만약 값이 없다면 새로 생성한다.HTML을 그대로 볼 때는
예제에서 사용할 변수 String data = “Spring!” 이다.<!-- ... -->웹 소스에 주석을 남긴다 ( 타임리프와 상관 x )한줄일때 : <!--/\* \[\[${data}]] \*/-->여러줄 일때 : <!--/\*--> ... <
웹 페이지를 개발할 때 계속 반복되는 공통영역들이 많이 생기게 된다. 이런 부분을 따로 떼어서 하나의 파일로 만들어서,마치 자바에서 메소드를 불러오듯이 불러서 사용할 수 있다.템플릿 조각은 th:fragment 으로 지정하고불러올 때는 th:insert="~{ (경로)
th:object - th:field 를 이용해서 객체를 다룰때 중복되는 부분을 줄일 수 있다.th:object : 커맨드 객체를 지정한다.\*{…} : 선택변수 식 → th:object에서 선택한 객체에 접근한다.th:field : html 태그의 id, name,
객체에 open이라는 속성을 하나 추가했다.체크박스는, checked 상태에서는 open=true 을 반환하고,unchecked 상태에서는 open=false를 반환하는 것이 대신, 아무것도 반환하지를 않는다.그래서 open=null로 인식된다. 사실은 checked