2010-12-08 6 views
1

간단한 wicket HTML 응답을 게시하는 방법이 있다면 제 질문은 무엇입니까?후 처리 개찰구 응답 (Rhino, jQuery)

Rhino (http://www.mozilla.org/rhino/) 및 jQuery를 사용하여 생성 된 HTML에 일부 DOM 변환을 적용하고 싶습니다. 아무도 그것에 대해 생각해 본 적이 없습니까? 어떤 제안을 시작해야할까요?

보다도, 마치에이 Wrzalik는


OK, 나는이있어 :

는 방법 onEndRequest responseString 문자열에서
public class MyRequestCycle extends WebRequestCycle { 
    public MyRequestCycle(WebApplication application, WebRequest request, WebResponse response) { 
     super(application, request, response); 
    } 

    @Override 
    protected void onEndRequest() { 
     String responseString = response.toString(); 
     //String newResponseString = process(responseString); 
     //replace old response content with the newResponseString 
     super.onEndRequest(); 
    } 
} 

내가에 갈거야 HTML 코드를 포함 Rhino, Envjs 및 jQuery를 사용하여 어떤 방식 으로든 변경할 수 있지만 질문은 이전 응답 내용을 새로운 내용으로 대체 할 수 있습니까?

답변

1

당신은 후 처리가 서버에서 수행하려는 경우 가장 좋은 건 그것은에 들어가기 전에 응답을 수정하는 Servlet Filter을 구현 가능성 고객.

렌더링 된 HTML을 작업하면서 Wicket과 관련이 없으며 모든 Java 프레임 워크에서 생성 된 html에 적용 할 수 있습니다.

1

As suggested 정상적인 Java EE 필터는 처리에 필요한 Wicket 관련 사항이 없으면 정상적으로 작동합니다.

그러나 Wicket 내부에서 어떤 이유로 든하고 싶다면 자신 만의 RequestCycle 구현 (MyRequestCycle extends WebRequestCycle)을 만들고 (아마도 onEndRequest 및/또는 getWebResponse를 재정 의하여) 처리 할 수 ​​있다고 가정합니다.

@Override 
public RequestCycle newRequestCycle(Request request, Response response) { 
    return new MyRequestCycle(this, (WebRequest) request, response); 
} 

을 나는 몇 가지에 대한 사용자 지정 RequestCycle을 사용하고 있습니다 (예 : this를) 자신을 —을 간단하고 — 간단합니다하지만 난 ':

은 Application 클래스에 newRequestCycle를 오버라이드 (override), 사용자 정의 RequestCycle을 사용하려면 여기에 귀하의 필요에 맞는다면 100 % 확신 할 수 없습니다. (내 개찰구의 경험은 여전히 ​​다소 제한적입니다.)

+0

감사! 그것은 매우 도움이되었습니다. – Maciej