2010-12-08 21 views
1

私は、プロセスウィケットのHTMLレスポンスを単純にポストする方法があるのですか?後処理Wicketレスポンス(Rhino、jQuery)

私がしたいことは、Rhino(http://www.mozilla.org/rhino/)とjQueryを使用して、生成されたHTMLにDOM変換を適用することです。 これまで誰でも考えましたか?どこから始めるべきなのか?をresponseString onEndRequest文字列は私がするつもりHTMLコードが含まれている方法

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

ベスト、 マチェイWrzalik


OKは、私はこれを持っていますRhino、Envjs、jQueryを使って何らかの方法で変更することができますが、どうしたら古いレスポンスのコンテンツを新しいものに置き換えることができますか?

答えて

1

EnvjsはRhinoでブラウザ環境をエミュレートします。具体的には、jQueryを使用してサーバー側でDOM操作を行うことができます。以前私のプロジェクトで使ってきたことがあり、成功しました。関連リソース:あなたは事後処理がサーバー上で実行したい場合は

1

、あなたの最善の策は、それがに行く前に応答を変更Servlet Filterを実施する可能性がありますクライアント。

レンダリングされたHTMLに取り組んでいるので、これはWicketと特に関係がなく、どのJavaフレームワークでも生成されたHTMLにも適用できます。

1

As suggested通常のJava EEフィルタは、処理に必要なWicket固有のものがない場合は正常に動作します。

しかし、Wicketの中で何らかの理由でやりたいのであれば、独自のRequestCycle実装(MyRequestCycle extends WebRequestCycle)を作成して(おそらくonEndRequestやgetWebResponseをオーバーライドして)処理することができます。

カスタムRequestCycleを使用するには、アプリケーションのクラスでnewRequestCycleをオーバーライドします。

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

私は自分自身—それはシンプルかつ—簡単ですが、私は」カスタム物事のカップル(例えばthis)についてRequestCycleを使用していますあなたのニーズに合っているかどうか100%は確信していません。 (私のWicketの経験はまだまだ限定されています)

+0

ありがとう!とても役に立ちました。 – Maciej

関連する問題