ある zul ページから別の zul ページにオブジェクトを渡そうとしています。どこ :
- どちらの zul ページにも独自の作曲家がいます。
- 1st zulのコンポーザーでオブジェクトの値を設定したいです。
- そして2nd zul's composerで入手したい。
executions.sendredirect() を試しましたが、オブジェクトの値をクリアし、 forward() は「代わりに sendRedirect を使用してユーザー要求を処理する」という例外をスローします。
あなたの問題はスコープです。
ZK では、他の Web アプリケーション フレームワークと同様に、さまざまなスコープ (webapp、デスクトップ、ページ、セッション、リクエストなど) にアクセスできます。2 つの異なる URL から提供される 2 つの異なるページがある場合、それらには異なるリクエスト スコープがあります。
あるリクエストから別のリクエストに移動する場合、リクエスト URL に関する情報を渡すことができます。
Executions.sendRedirect("page2.zul?myId=1234")
次に、ページ 2 のコンポーザで、次の値からこの値を取得できますExecution
。
Execution execution = Executions.getCurrent();
execution.getParameter("myId");
これは標準の HTTP クエリ文字列ビジネスであるため、ここではテキストと数字に限定されます。ただし、データベース ID などを渡す場合、これは非常に便利です。
より堅牢なソリューションは、ZK の他のスコープの一部を活用することです。たとえば、オブジェクトをユーザーのSession
スコープに入れることができます。実装の詳細については、メニュー付きの ZK セッション変数に対する私の回答を参照してください。Session
を使用する場合、テキストに限定されなくなり、実際の を保存できることに注意してくださいObject
。