타일즈와 유사하게 header, footer, body 등의 형식을 지원하는 sitemesh 설정 방법

 

[    SiteMesh 설정하기    ]

 

1. pom.xml에 dependency 추가

 

2. web.xml에 한글처리 filter 위에 filter 추가

이때, 모든 경로가 siteMesh의 영향을 일단 받을 수 있도록 /*로 설정한다.

 

3. /WEB-INF 폴더 밑에 sitemesh.xml 파일을 만들고 다음 코드를 붙여넣는다.

sitemesh 라이브러리를 추가했다면, WEB-INF 폴더 밑에 sitemesh.xml 파일을 자동으로 인식한다.

이 곳에서 sitemesh 설정파일의 위치를 등록해준다.

여기서는 /WEB-INF/decorators.xml 로 sitemesh의 설정파일을 사용하겠다는 것을 알 수 있다.

 

4. 위에서 설정파일로 사용할 xml 파일을 WEB-INF 폴더 하위에 decorators.xml로 만들고 다음 코드를 붙여넣는다.

/WEB-INF/decorators.xml

 

5. 데코레이터 기본 폴더에 decorator로 등록한 파일을 생성하자

/WEB-INF/views/layout/header-footer-layout.jsp 를 만들고 다음 코드를 붙여넣자.

 

6. 그 외의 설정

여기서는 4번에서 header-footer-layout.jsp 하나만을 등록하고 *(모든 요청)시 작동하도록 하였는데,

그 외에 다른 적용이 필요한 경우 이 부분에 다른 layout 설정 파일을 등록해서 사용할 수 있다.

 

그 외에도, layout 파일 내에도 별도의 header.jsp 등을 만든 것을

<c:import 태그를 이용해서 등록해서 사용할 수 있다.

 

  [ 비슷한 코드를 반복적으로 "렌더링"하는 방법 ]

  

  데이터 배열 처리시

  map() 메서드는 파라미터로 전달된 함수를 통하여 배열 내의 각

  요소를 처리해서 그 결과로 새로운 배열을 생성한다.

  

  arr.map(callback,[thisArg])

  

    callback : 새로운 배열의 요소를 생성하는 함수로서, 다음 세가지 인수를 가진다.

      - currentValue : 현재 처리되고 있는 요소

      - index : 현재 처리되고 있는 요소의 index 값

      - array : 메소드가 불려진 배열

    thisArg(선택항목) : callback 함수 내부에서 사용할 this 값을 설정

    ex) var numbers = [1,2,3,4,5]; // 처음 값 1,2,3,4,5

    var processed = numbers.map(function(num){

      return num*num;

    });

    //processed가 갖고 있는 값 : 1,4,9,16,25

    

    이걸 ES6 문법으로 작성해 보면(arrow function)

    let numbers = [1,2,3,4,5];

    let result = numbers.map((num) => {

      return num * num;

    });

    

    ES6의 arrow 문법 예제)

      - 파라미터 한개인 경우 : let one = a => console.log(a)

      

      이건 )

        var one = function one(a){

          return console.log(a);

        }

        와 같음

        

       - 파라미터가 두개인 경우 : 

            let two = (a,b)=>console.log(a,b);

       - 함수의 내부가 여러줄인 경우

          let three = (c,d)=>{

            console.log(c);

            console.log(d);

          }

       - 파라미터가 없는 경우

          let four = ()=>{

            console.log("no params");

          }

       


       

       


'개발 > ReactJs' 카테고리의 다른 글

3. 유동적인 데이터를 넣는 state  (0) 2017.05.10
2.Props와 Type, DefaultProps  (0) 2017.05.10
1.ES6 기본문법과 JSX 기본 문법  (0) 2017.05.10


html 쪽에서
<div id="root"></div>


'개발 > ReactJs' 카테고리의 다른 글

4. 반복되는 부분 컴포넌트 매핑  (0) 2017.05.10
2.Props와 Type, DefaultProps  (0) 2017.05.10
1.ES6 기본문법과 JSX 기본 문법  (0) 2017.05.10

+ Recent posts