티스토리 뷰

Spring

02.실행 / 카테고리 / tiles 설정

푸른하늘댁 2018. 1. 22. 14:09

출처: http://addio3305.tistory.com/36?category=772645

 [흔한 개발자의 개발 노트]


first 프로젝트 실행


이제 우리가 만든 first 프로젝트가 제대로 실행되는지 확인할 차례다.

1. Servers view에서 새로운 서버를 만든다.  (servers clean !)

앞에서 톰캣이 제대로 설치되었는지 확인하기 위해서 만든 서버가 남아있다면 지우자. 


Servers 뷰에서 마우스 우클릭 > New > Server를 선택해도 된다. 



2. Tomcat 7.0을 선택하고, 서버 이름은 first로 바꾼다. => (나는 8.5)

만약 여러개의 프로젝트가 있을 경우, 하나의 프로젝트에는 하나의 서버만 할당되어야 한다. 즉, 여러개의 서버를 생성해야 할 경우, 같은 이름으로는 서버를 여러개 생성할 수도 없고, 어떤 서버가 어떤 프로젝트인지를 알 수 없기 때문에, 본인은 서버의 이름과 프로젝트의 이름을 동일하게 생성한다.




3. Next > 를 누르자. 


이와 같은 화면이 나온다. 여기에서는 first라는 프로젝트 하나밖에 없기 때문에 상관없지만, 프로젝트가 여러개가 존재할 경우, 그 모든 프로젝트의 목록이 나온다. first를 더블클릭하거나 Add > 버튼을 눌러서 Configured 쪽으로 옮기고 Finish를 누른다.





4. 서버가 생성되었을테니, 서버를 실행시키자. 

1) 서버 선택후 Ctrl + Alt + R을 누르거나, 

2) 서버 우클릭 > Start를 선택하거나,

3) 녹색 동그라미안에 ▷가 있는 아이콘을 눌러서 서버를 실행시키자.


그러면 Console에 다음과같은 로그가 출력되면서 서버가 정상작동된 것을 확인할 수 있다.


5. 브라우저를 실행시키고, 주소창에 http://localhost:8080/first/ 를 입력한다.

first는 우리가 생성한 프로젝트의 이름으로, 만약 다른 이름으로 프로젝트를 생성하였다면, first 대신 작성한 프로젝트 명을 입력하면 된다.

그러면 다음과 같은 화면이 나온다. ( = home.jsp 나오는 지 확인하기)



이렇게 에러없이 화면이 나오면 문제없이 프로젝트의 생성 및 실행이 된것이다. 

















--------------------------------------------------------------------------------------------



Java Resources

src/main/java

- com.hanul.sw : 컨트롤러들


- dao : 공용 dao

- dto : 공용 dto

- service : 공용 service


- dto.customer

- dto.member

- dto.notice

- dto.board


- dao.customer

- dao.member

- dao.notice

- dao.board


- service.customer

- service.member

- service.notice

- service.board

src/main/resources

- data

· db.properties : 오라클 접속 정보

· default.xml : 마이 바티스와 디비의 연결, 

 SQL 실행객체에 해당하는 빈 등록, 

  파일 업로드를 위한 빈 등록


<Spring Bean Configuration 생성 : 빈 생성!>

      → xxxServiceImpl 객체 생성식 작성

→ xxxDAOImpl 객체 생성식 작성

↓ xxx.xml (※같은 xxxServiceImpl은 qualifier로 규정짓기)

· customer.xml

· member.xml

· notice.xml

· board.xml


- mapper : sql과 연결, 쿼리문을 작성하는 곳

· customerMapper.xml

· memberMapper.xml

· noticeMapper.xml

· boardMapper.xml



WEB-INF

classes

spring

- root-context.xml  : 모든 xml 찾아가게하기 (어노테이션 인식)

- servlet-context.xml : .jsp 찾아가게하기(컨트롤러 설명시)

views

- tiles : 레이아웃 지정

- error

- include

- customer

- join

- notice

- board

home.jsp

web.xml 한글 깨짐 방지 처리
















--------------------------------------------------------------------------------------------

 

 

 

tiles 설정

 

<tiles란?>

화면을 구성하는 데 있어서

하나의 파일이 아닌

여러 부분을 따로 작업해서

하나로 묶어

화면에 보여주는 것

장점 : include보다 편리하게 사용 가능

 

 

<설정방법>

 

-> 사용할 파일들

<servlet-context.xml>, <root-context.xml>, <tiles파일>

 

-> 파일구조

tiles

layout

layout.jsp

tile

header.jsp

footer.jsp

tiles.xml

 


->  pom.xml에서 (필요한 라이브러리 추가하는 곳) 의존성 추가

<dependencies></dependencies> 사이에 tiles에 dependency 추가

(이렇게 추가만 하면 알아서 maven이 어쩌고저쩌고해서 추가해줌)

(tiles를 사용할 수 있도록 의존성을 추가하는 것)

 

 

 

-> servlet-context.xml에서 타일즈 뷰리졸버와 타일즈 컨피귤러 추가.

(TilesViewResolver, TilesConfigurer는 스프링 3.2 이상에서만)

TilesViewResolver는 이 리졸버가 우선적으로 사용되도록 하는 것

TilesConfigurer는 value 경로에 tiles에 대한 설정파일이 들어있다는 것을 정의해줌

 

 

 

-> tiles.xml (tile에 대해 정의 되어있는 내용)에 설정파일을 작성.


(초록주석 위쪽)

name은 tiles-definitions에서 사용할 이름을 정의해 놓는 곳. 의미 맞춰서 지정.

template는 레이아웃의 틀이되는 파일을 적어놓는 곳으로 템플릿.

put-attribute해당 template에서는 이런 이름으로 이런 파일을 가져다 쓰겠다 라고 정의한 것

(초록주석 아래쪽)

definition

name단은 return을 ' */* ' = ' 경로/파일명 ' 이런 식으로 넘겨주겠다는 뜻의 패턴.

패턴이 name과 일치할 경우 해당 definition이 캐치하여 그에 맞는 content 보여줌.

extends단은 해당 definition은 레이아웃을 설정하지 않고,

이미 설정되어있는 레이아웃을 사용한다는 의미.

총 합쳐서,

name에 해당하는 패턴으로

controller에서 리턴을 해주면

extends의 값과 일치하는 레이아웃에 content를 보여주겠다.

 

 


 

<put-attribute />

name = "main"

해당 파일의 내용에 따라 계속 바뀔 것임

value = "...... ' {1}/{2}.jsp ' "

' */* ' 이 패턴으로 결과가 오는 친구들을 캐치해서 main에을 보여주는데

이 값이 ' 경로/파일명 '.

이 경로와 파일명이 {1}과 {2}에 들어가는 것.



-> layout.jsp 레이아웃을 작성한다.























공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함