2011-07-17 3 views

답변

1

이렇게하는 필터가 없습니다. 재귀 적 파생 파서 (parser)를 사용하는 자체 템플릿 논리가 있습니다.

이런 종류의 주석 구문 분석을 수행하는 것은 실제로 드문 것이 아닙니다. 우리가 먼저하는 일은 Jsoup를 사용하여 전체 HTML을 DOM과 유사한 트리로 스퍼핑하는 것입니다. Jsoup는 HTML을 XML과 같은 구조로 정규화합니다 (정확히는 아닙니다).

그런 다음이 트리를 내리고 Java 객체로 "Renderers"의 병렬 트리를 작성합니다. 각 렌더러는 특정 작업을 수행 할 수 있습니다. 즉, HTML을 출력 할 수 있습니다. Show 값이 true이면 렌더러 트리가 HTML 트리와 일치 할 때 ShowIf가 false를 반환하면 그 아래의 전체 분기도 삭제됩니다.

페이지 삽입을 위해 내부적으로 진행되는 복잡한 작업이 몇 가지 있습니다. 그러나 이것이 그 핵심입니다. 친절한 단어 주셔서 감사합니다!

단지, 작성자, Sitebricks & Guice 서블릿.

+0

답변 해 주셔서 감사합니다! – Roman

1

는 사용자 정의 구현을 반환하도록 그것은 응답 본문에 기록되어 있는지에 차단하고 그에 따라 그것을 장식하고 적어도 getWriter() 오버라이드 (override)되어되는 것을 특징 FilterHttpServletResponseWrapper의 도움으로 최종 응답 본문을 수정하는 것이 가능 .

예. 작가가 예를 들어, 기록 된 문자를 구문 분석, 라인으로 응답 라인을 버퍼 @Foo 등 문자를 포함한 행을 검색 한 후 다음을 위해 그에 따라 조치를 취할 것이라고

public class FooResponse extends HttpServletResponseWrapper { 

    public FooResponse(HttpServletResponse response) { 
     super(response); 
    } 

    public Writer getWriter() throws IOException { 
     // ... Here a custom one is returned. 
    } 

} 

chain.doFilter(request, new FooResponse((HttpServletResponse) response)); 

윤곽.

+0

thanx! 좋은 생각입니다 (구현이 약간 복잡 할 수 있음에도 불구하고). – Roman

2

아마도 JSP는 아니지만 자체 템플릿 언어 일 것입니다. 프레임 워크는 템플릿을 구조화 된 xml + 주석으로 구문 분석해야합니다. 자바 코드로 변환되어 즉시 컴파일됩니다.

관련 문제