728x90 프로그래밍/Spring10 Thymeleaf 기본 객체 Thymeleaf 안에 여러 종류의 기본 객체로 코드를 쉽게 짤 수 있다. ( 예를 들어 문자, 숫자, 파라미터 등등 이다. ) 예제로 화면에 출력되는 숫자를 모두 5자리로 만들어보자. [[${#numbers.formatInteger(dto.sno, 5)}]] 위 코드 처럼 포맷팅이 가능하다. 프로젝트 내 파일 ( build.gradle ) 에 아래의 구문을 추가하고 코끼리 아이콘을 클릭하면 자동으로 다운이 되나보다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOn.. 2023. 4. 4. 제어문 처리 ( Thymeleaf편 ) - 4 - 링크 처리에 대해 알아보자. Thymeleaf 에서의 링크는 @{ } 를 이용해야 한다. 아래의 내용은 SampleController 내용중 일부 이다. @GetMapping({"/ex2", "/exLink"}) public void exModel(Model model){ List list = IntStream.rangeClosed(1, 20).asLongStream().mapToObj(i->{ SampleDTO dto = SampleDTO.builder() .sno(i) .first("First....." + i) .last("Last......" + i) .regTime(LocalDateTime.now()) .build(); return dto; }).collect(Collectors.toList().. 2023. 4. 3. 제어문 처리 ( Thymeleaf편 ) - 3 - th:block 에 대해 알아보도록 하자. th:block는 특이하게 태그를 붙여서 쓰는 구문이 아니다. 예문을 살펴보자 실제 화면이 실행이 되면 위의 코드는 html로 처리 되지 않는다. 그리하여 루프 등을 별도로 처리하는 용도로 사용된다고 한다. 2023. 4. 3. 제어문 처리 ( Thymeleaf편 ) - 2 - 이번에는 inline 속성에 대해 알아보도록 하자. inline 속성은 개발에 가장 많은 도움을 준다고 한다. 주로 javaScript 를 처리 할때 편리하게 사용된다. 코드의 일부분을 따왔다. 태그에 th:inline 속성을 추가하여 자바 스크립트를 연결 시킨다. 예제들을 따라해보면.. 따로 처리한 구문이 없어도 DTO에서 가져온 값들이 JSON 포맷의 문자열로 된 것을 볼수가 있다. 2023. 4. 3. 제어문 처리 ( Thymeleaf편 ) - 1 - Thymeleaf 에서 제어문 처리를 어떻게 하는지 알아보자 마찬가지로 th: 를 적고 원하는 처리 값을 입력 하는 방식이다. th:if 는 보이는 대로 if문인데 다른 언어와 다른 점이 존재한다. 다른 언어들은 if~ else 가 하나의 묶음으로 처리가 되지만 이 언어는 단독으로 처리 된다. 다음 코드를 보자 다음과 같이 로 나누어진 모습을 보인다. 여기서도 css를 적용시킬수가 있다. 이와 같이 특정한 상황에서만 class 속성값이 입혀지고 나머지 값들은 값을 충족하지 않기에 class 속성이 입혀지지 않는 것을 확인 할수 있다. 2023. 4. 3. 스프링 내용 정리 - 2 - 포트 번호 설정을 잊지말자 상위 폴더에 아무 내용이 없으면 아에 표시가 안보인다. 없을 때 ( compact ) 처리가 된다. ----- 하위 폴더를 '.' 으로 표시 된다. 따라서 위에 설정을 눌러서 Compact Middle Packages를 클릭하여 이렇게 폴더구조가 모두 보이게 된다. 마치 이클립스에서 패키지를 만들때 '이름.이름' 으로 만든 기억이 난다. ( 이클립스에서도 폴더구조를 볼수 있도록 해야겠다 ) 2023. 3. 31. 스프링 내용 정리 - 1 - 일단 ORM ( Object Relational Mapping ) 을 알아야한다. 이 단어의 뜻은 객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술 이라고 한다. 간단히 매핑을 해준다고 생각한다. 자바에서 우선 클래스를 설계하듯이 테이블을 설계한다. 새로운 테이블에는 칼럼을 정의하고 칼럼에 맞는 데이터 타입을 지정해서 데이터를 보관하는 틀을 만든다. 아하.. 이거 참 클래스와 굉장히 유사하지 않는가! 그러면 인스턴스와 Row( 튜플, 레코드 )를 생각해보자 클래스는 인스턴스를 생성하고 인스턴스라는 공간에 데이터를 보관한다. 테이블은 하나의 Row에 데이터를 보관하게 된다. 차이가 느껴지는가? ' 객체 ' 라는 단어가 데이터 + 행위(메서드) 라는 의미라면 Row는 데이터만을 의미한다. ( 데이터베이.. 2023. 3. 29. 데이터 베이스 연결 이때까지 해오던 방식이 아니고 이 새로운 방법은 마치 마법처럼 연결된다. 해오던 방식은 아래와 같다. 자바에서 (이클립스) String으로 쿼리문을 짜서 executeQuery 등으로 쿼리문을 넘겨줘서 값을 찾아 내었지만... 이 새로운 방식은 JpaRepository 를 상속 받는 것으로 모든 작업이 끝난다. JPA는 인터페이스 선언만해도 자동으로 스프링의 빈으로 등록 된다. ( 스프링이 내부적으로 인터페이스 타입에 맞게 객체를 생성하여 빈으로 등록함 ) SQP 없이 새롭게 배우는 CRUD에 대해 알아보도록 하자 쓰여오던 쿼리문과 비교해서 보도록하자 insert 작업 : save(엔티티 객체) select 작업 : findByld(키타입), getOne(키 타입) update 작업 : save(엔티티 .. 2023. 3. 29. 구문 실행해보기 자바 구문을 실행하려면 가능한 부분에 화살표 모양으로 아이콘이 뜬다. 2023. 3. 28. 스프링 프로젝트 만들기 (기본적) 우선 프로젝트 파일을 만드는 것 부터 시작해보자 생각은 하는데 항상 위에 2.7.10 버전이 생각이 안나서 넘겨 버린다... ( 바로 만들었는데 안되면 이 경우 인듯 ) 처음 시작은 이러하였다. Spring Boot DevTools Lombok Spring Web application.properties 에 서버 포트 번호를 입력해준다. 이 역시 톰캣으로 작동하기에 포트 번호가 중복되지 않도록 해야한다. (앞으로도 이곳에 적을 구문이 많기도 하다) 2023. 3. 28. 이전 1 다음 728x90