프로젝트 생성 및 타일즈 설정

1. 프로젝트 생성하기

New > eGovFrame Web Project  > project name 작성

Group id도 name명과 동일하게 작성 후 <Next>클릭 > Generate Example 체크 후 <Finish>

 

[타일즈(tiles) 설정]

2. 생성한 프로젝트의 pom.xml 에서 타일즈 버전추가

<properties> ...</properties> - 버전 정보 넣는곳

<properties> 

...

     <org.apache.tiles-version>2.2.2</org.apache.tiles-version>

</properties>

3. pom.xml  package Explorer에서 Maven Dependencies 확인하기

.jar안에는 .class파일들이 압축되어있다.

java만 읽을 수 있게 만든 확장자로 이 .jar파일들로 전자정부 프레임워크가 돌아가고 java가 파싱된다.

처음 프로젝트 생성할때 기본세팅에서 Generate Example 체크한 라이브러리들이 생성되어 있다.

<dependency>
...
</dependency>

 

타일즈를 사용하기위해 dependency (의존성 주입) 를 통해 라이브러리를 추가한다. 

타일즈를 4번씩 반복하여 추가하게되는데 이유는 tiles와 slf4j의 충돌을 막기 위해 반복하여 예외처리를 해주는 부분이다.
이부분들을 붙여 넣은뒤 저장하면 Maven Dependencies안에 타일즈관련 .jar (tiles ... .jar )파일들이 자동으로 생성된다.

 

4. dispathcer-servlet.xml

위치는 webapp폴더 안에 있다.

xml파일인데 webapp에 있는 이유

보통 컨트롤러관련 설정하는 곳인 xml은 다른곳에 위치해 있는데

dispathcer-servlet.xml 은 화면단쪽의 설정을하는 곳이기 때문에 webapp폴더안에 위치해 있다.

 

dispathcer-servlet.xml 에서 <bean> 태그를 찾는다.

 

viewResolver 

/WEB-INF/jsp/egovframework/example/ 부분이 order=1 우선순위 1로 기본설정이 되어있는데

 

타일즈 설정을 추가하여 타일즈를 먼저 읽고 jsp를 두번째로 읽는걸로 설정을 변경한다.

 

기존의 viewResolver와 configurer 부분을 복사해서 붙여온다.

기존 viewResolver jsp의 순위 1을 2로 변경해주고 타일즈 viewResolver부분을 우선순위 1로 변경해준다.

반응형

'Backend > JAVA' 카테고리의 다른 글

[Egov]프로젝트구조(서버올린 후 메인이 뜨는 과정)  (0) 2018.03.27
MVC패턴  (0) 2018.03.27

[Egov] 프로젝트 구조

Java 폴더  - MainController.java

Java폴더 내의 cmmn, main, sample 들은 업무패키지이다.

Cmmn- 공통업무 패키지

Main-업무패키지

Sample- 샘플업무패키지

 

resources 폴더

egovframework의 설정 파일과

Sql 쿼리 관련 파일(.xml)

 

webapp폴더

view관련 파일들 (.css, .jsp, .js, .img, .xml 등)

WEB-INF폴더 내에 jsp파일이 들어있다.

 

톰캣 서버를 올린 후 메인이 뜨기까지의 과정

1. Servers >Tomcat v7.0 Server at localhost- config > context.xml

context.xml

WEB-INF/web.xml로 가라고 하여 이동한다.

 

 

2. WEB-INF/web.xml

// web.xml
<welcome-file-list>
	<welcome-file> index.jsp </welcome-file>
</welcome-file-list>

 

web.xml에서 welcome file이 있는데

현프로젝트의 처음 페이지를 지정해주는 부분으로 지정된 index.jsp로 이동하게 된다.

 

3. index.jsp

// index.jsp

<jsp: forward page = "/main.do"/>

 

Forward태그:어디어디로 찾아가라는 의미로

page속성에 설정된 값 main.do로  이동한다.

 

 

4. main.do의 위치는 java폴더> egovframework > example > main > web > MainController.java

@RequestMapping(value = "main.do")

public String initMain() throws Exception {

return "main/main.tiles";

}

 

Web폴더 안에있는 컨트롤러의 @RequestMapping (리퀘스트맵핑 어노테이션)은main.do를 찾아가게 되는데

여기서 속성값인 문자열은 반드시 "유니크" 해야 호출 시 찾아올 수 있다.

(두 개 이상이면 jsp:forward가 찾아갈 수 없기 때문에)


호출된 메서드 안의 구현부 { }에서 return 으로 main폴더 내의 main.tiles를 호출한다.
main/main.tiles는 jsp업무폴더안에있는 jsp파일 명이다.

 

그래서 톰캣서버를 올리면 main.jsp가 뜬다.



반응형

'Backend > JAVA' 카테고리의 다른 글

[Egov] 프로젝트 생성 및 타일즈 설정  (0) 2018.03.27
MVC패턴  (0) 2018.03.27

 


MVC (Model View Controller)

 

Model : 모든 데이터의 상태와 로직을 처리

View : 모델이 가진 데이터를 표현하는 방법을 제공 (화면단)

 

Controller : 사용자로부터 받은 정보를 모델에게 상태변경요청을 하고 필요에 따라 뷰의 상태변경을 요청

 

MVC 패턴

 

디자인 패턴중 하나인 MVC패턴

디자인패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에

발생했던 문제점들을 정리해서 상황에 따라 간단하게 적용해 쓸 수 있는 것을 정리하여

특정한  규약”을 통해 쉽게 쓸 수 있는 형태로 만든 것

 

라이브러리프리임워크등을 예로 말할 수 있다.

 


 

MVC란?

 

MVC는 Model View Controller의 약자로 하나의 애플리케이션, 프로젝트를 세 가지 역할로 구분한 패턴으로

사용자(Client)가 Controller를 조작하면 Controller는 Model을 통해서 데이터를 가져오고

화면단(View)를 제어하여 사용자에게 전달한다.

 

 


 

MVC 장점

1.     유연하고 확장하기 쉽다 (컨트롤러가 뷰와 모델 간의 중간관리 역할을 하여 간접소통을 통해 좀 더

        유연한 구조를 설계할 수 있다. 수신하는 데이터 양을 줄일 수 있다.

2.     디자이너와 개발자의 협업이 용이하다.

 

3.     유지보수 비용을 절감할 수 있다.

 


 

MVC 단점

1.   기본기능 설계를 위해 클래스들이 많이 필요하여 복잡해질 수 있다. 스크립트로 작성되므   로 디버깅이 용이하지 않다..

2.   설계시간이 오래 걸리고 숙련된 개발자가 필요하다.

3.   처음 설계시간이 오래 걸려서 속도가 중요한 프로그램에서는 권장되지 않을 수 있다.

 

4.   Model View의 의존성때문에 완벽한 분리가 어려워서 패턴이 모호해질 수 있고 변형     이 올 수 있다.

 


 

MVC 순서

 

처음 User View에서 보여주는 화면에 접속

컨트롤러는 페이지를 보여주기 위해 모델을 호출

모델은 웹페이지의 결과값을 조합하여 결과물을 컨트롤러로 리턴

 

모델이 리턴한 결과를 View에 업데이트하여 사용자에게 보여줌

 

 

  요청  Client > Controller > Service > ServiceImpl > Mapper > DB(xml)

 

  응답  DB(xml) > Mapper > ServiceImpl > Service > Controller > Client

 

 

 

 

 

> Controller (컨트롤러)

- class

- 데이터를 주고받는 역할

- 터미너 역할

 

 

> Service (서비스)

- interface인터페이스이다.

- 구현부가 없다.

- ServiceImpl이 구현부 역할을 한다.

 

 

> ServiceImpl(서비스 임플)

- class

- 서비스의 구현부역할로 제일 중요한 로직들이 이 서비스임플에 있다.

 

 

> Mapper(맵퍼)

- interface 인터페이스

 

- Sql의 쿼리를 가리키는 역할을 한다

 

 

반응형

+ Recent posts