decorators. xml 의 용법

오늘 이전 사람 이 한 프로젝트 를 바 꾸 고 struts 2, spring, hibenate 프레임 워 크 로 만 들 었 습 니 다. 맞습니다. 그리고 jquery 도 있 습 니 다.저 는 jquery 로 비동기 요청 을 해서 배경 에 json 데 이 터 를 생 성하 여 프론트 데스크 에 드 롭 다운 입력 상 자 를 생 성 했 습 니 다. 배경 에 요청 한 후에 json 데 이 터 를 성공 적 으로 생 성하 고 struts 의 맵 파일 에 따라 jsp 페이지 로 돌 아 왔 습 니 다. 이 페이지 의 역할 은 텍스트 데 이 터 를 생 성 하 는 것 일 뿐 js 측은 반응 하지 않 았 습 니 다.인터넷 에서 jquery. ajax 에 인자 error 가 있 습 니 다. 이 중간 에 무슨 문제 가 생 겼 는 지 알려 줄 수 있 습 니 다. error 코드 를 더 한 후에 alert 를 해 보 세 요. 과연 오류 가 있 습 니 다: parsererror
          ,             :
    1,         json       
    2,        ,             
           ,               ,                ,      ,     。。。

                         ,          ,         ,        jsp       (      、js、 css   。
 include    , jsp include    )。
               ,     jsp     ,  ,      ,     action    excludes    。    。

인터넷 에 매우 가 는 글 이 있 는데, 붙 여 서 예비 로 한다.
소개: sitemesh 는 Decorator 모드 를 사용 하여 filter 로 request 와 response 를 캡 처 하여 페이지 구성 요소 head, content, banner 를 완전한 보기 로 결합 합 니 다.일반적으로 우 리 는 include 태그 로 모든 jsp 페이지 에 다양한 header, stylesheet, scripts and footer 를 계속 포함 하고 있 습 니 다. 지금 은 sitemesh 의 도움 을 받 아 즐겁게 삭제 할 수 있 습 니 다.다음 그림 에서 복합 보기 모드 에 쉽게 도달 하고 싶다 면 본문 을 보 세 요.
1. WEB - INF / web. xml 에서 copy 아래 filter 의 정의:
 
 
 
  sitemesh 
     com.opensymphony.module.sitemesh.filter.PageFilter 
   
   
     sitemesh 
     /* 
   
 

2. copy 에 필요 한 sitemesh - 2.3. jar 는 WEB - INF \ lib 아래 에 있 습 니 다.(여기 다운로드 가능http://www.opensymphony.com/sitemesh/) 3. WEB - INF / decorators. xml 를 만들어 각 장식 기 페이지 를 설명 합 니 다.
 
        
           * 
        
 

위 프로필 은 장식 기 페이지 가 있 는 경 로 를 지정 하고 main 이라는 장식 기 를 지정 합 니 다. 이 장식 기 는 기본 으로 웹 응용 루트 아래 의 모든 페이지 를 장식 합 니 다.4. 장식 기 페이지 / decorators / main. jsp 만 들 기
 
  
       
          <title default="     ..."/> 
           
       
      
        sitemesh   

[email protected]

5. 인 테 리 어 된 페이지 / index. jsp (콘 텐 츠 페이지) 를 만 듭 니 다.
 
 
      
       Agent Test 
      
      
       

, .


마지막 으로 index. jsp 를 방문 하면 다음 페이지 가 생 성 됩 니 다. 또한 모든 페이지 는 index. jsp 와 같이 sitemesh 의 filter 에 의 해 장식 모드 로 위의 그림 처럼 수정 되 지만 include 탭 을 사용 하지 않 아 도 됩 니 다.
장식 기 decorator 개념 은 재 활용 가능 한 웹 프로그램 을 만 들 기 위해 서 일반적인 방법 은 다음 과 같은 레이 어 링 시스템 을 구축 하 는 것 입 니 다.
    *   :JSP Servlets, jakarta velocity 。。。 
    *       Controller : (Struts/Webwork) 
    *      Business :       
    *       :hibernate/jdo 

그러나 나 쁜 것 은 전단 의 페이지 논리 가 재 활용 되 기 어렵 다 는 것 이다. 모든 페이지 에서 수많은 include 로 공공 header, stylesheet, scripts, footer 를 재 활용 할 때 문제 가 발생 했다. - 중복 되 는 코드 는 각 페이지 마다 copy 로 페이지 구 조 를 재 활용 해 야 하 며 창의 적 으로 페이지 구 조 를 바 꿔 야 할 때 재난 은 당신 을 사랑 하 게 된다.sitemesh 는 filter 를 통 해 request 와 response 를 캡 처 하고 원본 페이지 에 일정한 장식 (header, footer 일 수 있 습 니 다.) 을 추가 한 다음 에 결 과 를 클 라 이언 트 에 게 되 돌려 주 고 장 식 된 원본 페이지 는 sitemesh 의 장식 을 모 릅 니 다. 이것 은 탈 결합 항목 에 이 르 렀 습 니 다.곧 새로 발 표 될 Portlet 규범 은 우리 의 기준 이 이런 것 보다 더 멋 진 생각 을 실현 하 는 데 도움 이 될 것 이 라 고 합 니 다. 그러나 불쌍 한 나 는 그것 이 도대체 무슨 말 인지 모 르 겠 습 니 다. 관심 이 있 는 사람 은 jetspeed 나 JSR (Java Specification Request) 168 을 연구 할 수 있 습 니 다. 그러나 나 는 sitemesh 가 이렇게 간단 하 다 고 생각 합 니 다. 우 리 는 먼저 사용 해도 괜 찮 습 니 다.환경 을 어떻게 설정 하 는 지 보 여 줍 니 다. WEB - INF / lib 에 있 는 sitemesh. jar 외 에 도 WEB - INF /: * sitemesh. xml (선택 가능) * decorators. xml sitemesh. xml 에 두 가지 정 보 를 설정 할 수 있 습 니 다. Page Parsers: stream 의 데 이 터 를 읽 고 한 Page 대상 에서 SiteMesh 에 의 해 해석 되 고 작 동 합 니 다.(자주 사용 되 지 않 습 니 다. 기본 값 으로 하면 됩 니 다) Decorator Mappers: 서로 다른 장식 기 종류 입 니 다. 저 는 두 가지 가 모두 아래 에 있 는 것 을 발 견 했 습 니 다.일반적인 mapper 입 니 다. 장식 기의 설정 파일 이름 을 지정 할 수 있 고, 다른 인쇄 가능 한 장식 기 를 사용 할 수 있 습 니 다.http://localhost/aaa/a.html?printable=true인쇄 할 수 있 도록 원본 페이지 를 보 여 줍 니 다.(그러나 일반적으로 만 들 지 않 아 도 됩 니 다. 기본 설정 은 충분 합 니 다. com / opensymphony / module / sitemesh / factory / sitemesh - default. xml): 범례:
 
      
        
        
        
      
      
        
          
        
          
             
             
                     
          
   
 

decorators. xml: 복합 보 기 를 구성 하 는 모든 페이지 구성 요소 에 대한 설명 (주요 구조 페이지, header, footer...) 을 정의 합 니 다. 다음 과 같 습 니 다.
 
      
       * 
      
      
 
* defaultdir:            
* page :       
* name :    
* role :   ,     
* webapp :               
* Patterns :      ,   *,             。 

가장 중요 한 것 은 장식 기 자 체 를 쓰 는 것 이다.그리고 그들 을 decorators. xml 에 묘사 합 니 다. 가장 간단 한 용법 을 살 펴 보 겠 습 니 다. 사실 가장 자주 사용 되 고 가장 간단 한 용법 은 바로 우리 의 hello 예 입 니 다. 이렇게 많은 기술 에 직면 하여 기능 점 이 도착 할 때 까지 만 연구 할 필요 가 없다 고 생각 합 니 다.
 
 
 
      
       <title default="     ..."/> 
        
      
      
       sitemesh   

[email protected]

우 리 는 장식 기 페이지 에 두 개의 탭 만 사용 합 니 다: 요청 한 원본 페이지 의 title 내용 을 < / p > < title / > 중간 에 삽입 합 니 다. < br / > < body / >: 요청 한 원본 페이지 의 body 내 모든 내용 을 해당 위치 에 삽입 합 니 다. < br / > 그리고 우 리 는 decorator. xml 에 다음 설명 을 추가 하면 됩 니 다: < br / > < decorator name = "main" page = "main. jsp"> < br / > < pattern > * < / pattern > < br / > < / decorator > < br / > 이렇게 요청 한 모든 페이지 를 다시 처리 하고 main. jsp 형식 으로 다시 보 여 줍 니 다. < br / > 더 많은 용법 을 보 여 줍 니 다. (sitemesh 문 서 를 베 끼 기)< br / > 아래 에 있 는 모든 태그: < br / > Decorator Tags Page Tags < br / > 는 장식 기 페이지 를 만 드 는 데 사 용 됩 니 다. 원본 콘 텐 츠 페이지 에서 장식 기 를 방문 하 는 데 사 용 됩 니 다.
 

<br><getproperty/> <br><usepage/> <br><applydecorator/> <br><param/> <br></code></pre>< p > 원본 페이지 (포 장 된 페이지) 의 head 탭 에 있 는 내용 (head 탭 자 체 는 포함 되 지 않 음) 을 삽입 합 니 다. < br / > < body / > < br / > 원본 페이지 (포 장 된 페이지) 의 body 탭 에 있 는 내용 을 삽입 합 니 다. < br / > < title default = "..." / > < br / > 원본 페이지 (포 장 된 페이지) 의 title 탭 에 있 는 내용 을 삽입 하면 결 성 된 값 을 추가 할 수 있 습 니 다. < br / > 예: < br / > / decorator / main. jsp 에서(장식 기 페이지): < / p > < title > < title default = "title - hello" / > - 추가 제목 / aa. jsp 중 (원본 페이지): aa 페이지 방문 / aa. jsp 결과: aa 페이지 - 추가 제목 은 탭 에 원본 페이지 (포장 페이지) 를 삽입 합 니 다.기 존 탭 의 속성 에 있 는 내용 중 하 나 를 추가 할 수도 있 습 니 다. sitemesh 문서 의 예 는 이해 하기 쉽 습 니 다. The decorator: > The undecorated page: The decorated page: 메모, writeEntireProperty = "true" 는 내용 을 삽입 하기 전에 빈 칸 을 추가 합 니 다. jsp 페이지 의 탭 처럼 페이지 대상 으로 포 장 된 페이지 를 사용 할 수 있 습 니 다.(게 으 른 용도) 예: 사용 가능: 도달 한 접근 결과 입 니 다. < br / > < applydecorator name = "..." page = "..." title = "..." > < br / > < param name = "..."... < / param > < br / > < param name = "...">... < / param > < br / > < / apply decorator > < br / > 포장 기 를 지정 한 페이지 에 적용 합 니 다. 일반적으로 포장 페이지 에 포장 기 를 주동 적 으로 사용 합 니 다. 이 라벨 은 이해 하기 어렵 습 니 다. 예 를 들 어 < br / > 포장 기 페이지 / decorators / panel. jsp: < p > < title / > < / p >... < p > < body / > < / p > < br / > < br / > 그리고 decorators. xml 에 < decorator name = "panel" page ="panel. jsp" / > < br / > 공공 페이지 가 패 널 에 포 장 됩 니 다. / public / date. jsp: < br / >... < getproperty property = "my Email"/ > < br / > 포 장 된 페이지 / page. jsp: < br / > < title > page 의 응용... chenp@neusoft.com마지막 결 과 는 무엇 일 까요?의 title, 2 단 은 date. jsp 의 body 내용 입 니 다. 또한, page: apply Decorator 에 포 함 된 page: param 태그 가 설명 한 속성 값 은 포장 페이지 에서 decorator: getProperty 태그 로 접근 할 수 있 습 니 다. 인쇄 가능 한 인터페이스 장식 은 앞에서 말 했 듯 이 인쇄 가능 한 장식 기 가 1 가지 있 습 니 다. 사용 할 수 있 습 니 다.http://localhost/aaa/a.html?printable=true접근 방식다른 장식 기 (자신 이 지정 한) 는 인쇄 할 수 있 도록 원본 페이지 를 보 여 줍 니 다. (header, footer 등의 화려 한 그림 도 연결 하지 않도록 합 니 다) 그 를 어떻게 실현 하 는 지 살 펴 보 겠 습 니 다. 1. 먼저 WEB - INFO / sitemesh. xml 에 설정 합 니 다.<pre><code> <mapper class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper"> <param name="decorator" value="printable"/> <param name="parameter.name" value="printable"/> <param name="parameter.value" value="true"/> </mapper> </code></pre> <br>이렇게 하면? printable = true 를 통 해 원래 의 장식 기 대신 printable 이라는 장식 기 를 사용 할 수 있 습 니 다. 2. WEB - INFO / decorators. xml 에서 해당 하 는 printable 장식 기 를 정의 합 니 다.<br>3. 마지막 으로 printable 장식 기 / decorators / printable. jsp 작성<pre><code> <title><title/>

</h1> <p align="right"><i>(printable version)</i></p> <body/> </code></pre> <p> ?printable=true 。</p> <p> <br/> sitemesh iso-8859-1, , :<br/> * 1: application server , encoding charset , gbk gb2312 <br/> * 2: 。<br/> 1. jsp : server 。<br/> 2. jsp head :<meta http-equiv="content-type" content="text/html; charset=gbk"/> 。<br/> : sitemesh :<br/> 1. ,<br/> 2. WEB-INFO/decroators.xml 。<br/> 3. decroators.xml , /_decorators <br/> 4.ok , <br/> </p> </usebean></div> </div>

좋은 웹페이지 즐겨찾기