2012-02-12 10 views
0

私はplayframeworkのフラッシュのもので混乱しています....ハイレベルは意味があります。http POSTでフラッシュのものを入れて、リダイレクト後にhttp GETを取得できるようにする " 。私はあなたが "次のGET要求で検索されるGET要求には何かを入れることができましたが、非常に非常にうまくいきました。"playframeworkを点滅させるか点滅させない

私は、次のを持っており、それがparams.flashを必要としValidation.keepやマイページ機能を停止し....(良い今のところ)....もちろんの

if(Validation.hasErrors()) { 
     params.flash(); // add http parameters to the flash scope 
     Validation.keep(); // keep the errors for the next request(after redirect) 
     registerCompanyPage(); 
    } 

後に、私が持っていますこれとBREAKSのものを、この場合に機能を追加....

if(Validation.hasErrors() || !license) { 
     Validation.keep(); //BREAKS functionality!!!! as errors NEVER go away now after getting them just once 
     params.flash(); //BREAKS functionality as stuff NEVER goes away now 
     log.info("errors="+Validation.errors()); 
     flash.error("Errors in form"); 

     log.info("company url="+company.getCompanyUrl()); 
     render("@registerStep2Page", user, company, license); 
    } 

そうregisterCompanyPageはそれのコードは、レンダリング呼び出しにもかかわらず、リダイレクトをしていた???? (私はここにそのコードを掲載していませんでした)、リダイレクトするために私の2番目のメソッドでレンダリングを変更すると、コントローラーがまったく見つかりません。

私はplayframeworkのサンプルのすべてのバリデーションを見ています。それらはすべてValidation.keepもparams.flashもないレンダリングをしています。そこで何が起こっていますか?ある時点で、私はValidation.keepを削除したと思っていましたが、何かが壊れましたが、今すぐ複製できないようです。

誰でもここで何が起こっているのか十分に理解していますか?

おかげで、 ディーン

+0

この質問は、新しい質問と非常に関連しています。私はここで質問します。http://stackoverflow.com/questions/9253256/playframework-need-a-good-create-update-delete-example-using-same- html-page –

答えて

1

パブリック静的メソッドへの任意の呼び出しがリダイレクトを起動します。 (ブラウザのURLをチェックして、好きなことを確認します。つまり、POSTの一部として呼び出したアクションと同じではありません)。

最初の例では、フラッシュを使用する必要があるため、元のページにリダイレクトした後にエラーが失われることはありません。

2番目の例では、アクション内で直接レンダリングしています。したがって、フラッシュを使用すると、次のリクエストの準備ができていることを記憶しています。これはエラーがないため、明らかに悪いことです。

オンラインで表示される例は、いくつかの理由で異なります。元の見方は、フラッシュを使用して元のページに強制的にリダイレクトすることでした。これにより、あなたが見ているURLと実際の現在のページが同期していました。ただし、フラッシュはクッキーであるため、パラメータとエラーメッセージを4Kbしか格納できないメディアに格納することには限界があります。したがって、人々は一般にあなたの第2の方法を使用します。 RESTfulではないが、リダイレクトがないため、クッキーの必要性を防ぎます。

+0

hmmm、REST以外の方法でその嘘つきを終わらせることはありません。「もしあなたが戻ったら私たちは情報ポップアップを再ポストする必要があります。 ? –

+0

はい、これはRESTメソッドの主な利点の1つだと思います。 – Codemwnci

関連する問題