[230207 93일차]

     

    *css 와 js는 절대경로를 넣는 것이 바람직하고 contextPath 를 직접 명시해주는 것은 바람직하지 않다.(바뀌는 경우가 발생하기 때문)

    → ${pageContext.request.contextPath }/resources/ 를 붙여준다.

     

    *프로젝트 Run 해줄 , 서버에서 프로젝트가 하나만 구동되도록 해주는 것이 바람직하다.

     

     

    Lombok Library

     

    *lombok 라이브러리 설치

    https://projectlombok.org/download

    → 다운로드 후 jar 파일 클릭(맥OS의 경우 접근이 안되면 ctrl 누르고 클릭)

    → IDE에 STS, Eclipse 추가 후 완료

    → Maven - Update Project

     

    *Lombok 기능

    멤버변수 선언과 클래스에 간단한 어노테이션만으로 getter, setter, 생성자, toString(), equals(), hashCode() 를 생성해줄 수 있으며 멤버변수 추가 및 삭제 시 자동으로 그에 맞게 조정된다.

    • @Getter
    • @Setter
    • @AllArgsConstructor
    • @NoArgsConstructor
    • @ToString

    @Data : @Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor 의 기능을 모두 포함한다.

    Ex>

    @Data

    @AllArgsConstructor

    @NoArgsConstructor

    public class TripVO {

         private int tno;

         private String writer;

    }

     

    Tiles Library

    디스플레이의 레이아웃 기능을 제공하는 오픈 소스 라이브러리이다. React 의 중첩 라우팅과 비슷한 기능이다.

     

    < Tiles 라이브러리 사용 방법 >

    1. pom.xml 타일즈 dependency 추가

    	<!-- 타일즈 뷰 템플릿 jstl이 반드시 필요함-->
    	<dependency>
    		<groupId>org.apache.tiles</groupId>
    		<artifactId>tiles-extras</artifactId>
    		<version>3.0.8</version>
    	</dependency>
    	<dependency>
    		<groupId>org.apache.tiles</groupId>
    		<artifactId>tiles-servlet</artifactId>
    		<version>3.0.8</version>
    	</dependency>
    	<dependency>
    		<groupId>org.apache.tiles</groupId>
    		<artifactId>tiles-jsp</artifactId>
    		<version>3.0.8</version>
    	</dependency>

     

    2. Servlet-context 타일즈 선언

    <!-- 타일즈 설정파일 위치 -->
    	<beans:bean id="tilesConfigurer"
    		class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
    		<beans:property name="definitions">
    			<beans:list>
    				<beans:value>/WEB-INF/tiles/tiles.xml</beans:value>
    			</beans:list>
    		</beans:property>
    	</beans:bean>

     

    3. WEB-INF 아래 tiles 폴더 생성 후 tiles.xml 파일 생성

     

    4. Tiles.xml 안에 타일즈 설정 구문 선언

    <!DOCTYPE tiles-definitions PUBLIC
      "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
      "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">

     

    5. servlet-context 뷰리졸버를 대체할 구문 선언( 리졸버 구문 삭제 무방)

    	<!-- 뷰 리졸버 상위 클래스 UrlBasedViewResolver 클래스의 뷰로 사용할 tileView 클래스를 주입 -->
    	<beans:bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    		<beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
    		<beans:property name="order" value="1" />
    	</beans:bean>

     

    6. tiles.xml 에 템플릿 모형 정의

    body 부분만 유동적으로 변하게끔 설정해주는 것이 바람직하다.

    <tiles-definitions>
         <!-- 템플릿의 모형을 정의 -->
         <!-- name은 컨트롤러에서 반환되는 값 template은 파일의 위치 -->
       <definition name="base" template="/WEB-INF/tiles/template.jsp">
          <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />
          <put-attribute name="body" value="" />
          <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />
          <put-attribute name="left" value="/WEB-INF/tiles/left.jsp" />
       </definition>
         
         <!-- 위에 선언된 base템플릿을 상속 body부분을 동적으로 처리 -->
         <definition name="*" extends="base">
          <put-attribute name="body" value="/WEB-INF/views/{1}.jsp" />
       </definition>
       
       <definition name="*/*" extends="base">
          <put-attribute name="body" value="/WEB-INF/views/{1}/{2}.jsp" />
       </definition>
         
         <definition name="*/*/*" extends="base">
          <put-attribute name="body" value="/WEB-INF/views/{1}/{2}/{3}.jsp" />
       </definition>
       
       <!-- 템플릿 미적용 페이지 지정 -->
       <!-- <definition name="user/login" template="/WEB-INF/views/user/login.jsp" /> -->
    </tiles-definitions>

     

    7. 템플릿을 적용시키지 않을 페이지는 tiles.xml 아래와 같이 따로 설정해주면 된다.

    <definition name="user/login" template="/WEB-INF/views/user/login.jsp" />

     

     

    < MyBatis mapper 파일 활용 시 설정 부분 >

    *root-context.xml sqlSessionFactory 내부에 매퍼 파일 경로 속성을 추가해줘야 한다.

    <property name="mapperLocations" value="classpath:/sqlmap/*.xml" />

     

    *mapper.java 파일의 경로를 mapper.xml 파일의 namespace 추가해줘야 한다.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper
      PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="com.joongang.myweb.trip.service.TripMapper">

     

    반응형

    'Java Application SW Developer Course Rec' 카테고리의 다른 글

    Day95  (0) 2023.02.09
    Day94  (1) 2023.02.08
    Day92  (0) 2023.02.06
    Day91  (0) 2023.02.03
    Day90  (0) 2023.02.02

    댓글