2010-12-08 62 views
1

我的問題是如果有一種方法可以簡單地發佈進程檢票HTML響應?後處理Wicket響應(Rhino,jQuery)

我想要做的是將一些DOM轉換應用到使用Rhino(http://www.mozilla.org/rhino/)和jQuery生成的HTML中。 有人曾經想過嗎?任何建議從哪裏開始?

最佳, 馬切伊Wrzalik


OK,我有這樣的:

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(); 
    } 
} 

在方法onEndRequest字符串responseString包含HTML代碼,我要去使用Rhino,Envjs和jQuery改變某種方式,但問題是如何用新的替換舊的響應內容?

回答

1

如果你想在服務器上進行後期處理,最好的辦法是有可能實現一個Servlet Filter其修改響應它去之前客戶。

當您在處理呈現的HTML時,這與Wicket沒有任何特別的關係,可以應用於由任何Java框架生成的html。

1

As suggested,如果沒有Wicket特定的處理需求,正常的Java EE過濾器將正常工作。但是如果你想在Wicket內部做這件事,出於某種原因,我想你可以創建你自己的RequestCycle實現(MyRequestCycle extends WebRequestCycle)並在那裏做處理(也許通過重寫onEndRequest和/或getWebResponse)。

要使用自定義RequestCycle,覆蓋newRequestCycle在你的應用程序類:

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

我使用自定義的一個RequestCycle一對夫婦的事情(如this)自己—它的簡單和直接的—但我如果它符合你的需求,那麼我不能100%確定。 (我的Wicket經驗仍然有限。)

+0

謝謝!這非常有幫助。 – Maciej 2010-12-09 11:45:23