2012-02-12 9 views
1

私の例ではplayframeworkが欠けているようです。予約は最も近いですが、CRUDモジュールの例であり、このparent()呼び出しを使用していますが、私はそれが何をするかわかりません。 CRUDモジュールがない例はありますか?playframework、良い作成、更新、削除の例が必要です同じhtmlページを使用しています

また、すべての検証サンプルの例では、http POSTのメソッドで「レンダリング」が呼び出されています...ページ内のエラーでGETにリダイレクトするのではなく、推奨される方法ですか?

私はそれを探しています具体的な例としては、

  • が(エラー
  • でeditentity.html
  • 再レンダリングを使用して新しいオブジェクトを作成し、editentity.htmlと古いオブジェクトを編集することになるすべてのこれらの質問に答えるでしょう上記のHTMLページと同じです)。

いい例がありますか?ここ

MOREノートは... は、我々はプロジェクトを編集するためのプロジェクト

<a href="@{Project.editProject(null)">Add Project</a> 

を追加するための呼び出しページ(または別の呼び出し元のページ) からこれを持って

<a href="@{Project.editProject(project.name)">Edit</a> 

が、今の場合私はそれをする、私は今の私の郵便物と闘う

public static void postProject(ProjectDbo project) { 

    if(validation.hasErrors()) { 
     Validation.keep(); 
     params.flash(); 
     Project.editProject(???????/???); //I need to pass in the project to refill in the form AND the project.name for the routes file??? 
    } 

    SomePage.pageXXXXX(); 
} 

注:the ???? projectDboで渡す必要がある場所ですが、このメソッドはprojectNameのみを受け入れます。どのように再びページにレンダリングするものを取得するには?

私はeditProjectを呼び出す方法があり、そのprojectDboにページでもアクセスする必要があるかどうか、またはこれを行う方法がないと思いますか?どのようにこのパターンを行うには?

TRY#5:私はparams.flashを使ってProject.editProject(project.name)を呼び出そうとしましたが、残念なことに、私のフォームのいずれも埋め込まれておらず、ユーザーは彼が入力したすべての仕事を失います。私が働いているのは、レンダリング(アクション、アクション引数と一致しない{paramsリスト})を使用していることだけです。

(予約の例はあまりにも多くの例があります。

これは一般的な使用例です。その例があると思います。

おかげで、 ディーン

答えて

3

私はブエノスアイレスのJava User Groupでのプレゼンテーションの例を正確に作成しました。

バリデーション、1対多の関係、備品、テスト、タグ、ツイッターブートストラップ、いくつかのPaaSクラウドコンピューティングへの展開など、基本的なクルードアプリケーションです。

これはGitHubのレポです:https://github.com/opensas/play-demo

ステップのチュートリアルによる詳細なステップ:https://github.com/opensas/play-demo/wiki

アプリケーションが起動して

OpenshiftGoogle application engineheroku上で実行されている、Cloudbees

されていますzencontact exampleに基づいており、これもあなたが探しているものです。

と同じ形式を使用してについては、このアプリからのコードです:

public static void form(Long id) { 
    final Event event; 
    if (id==null) { 
     event = new Event(); 
    } else { 
     event = Event.findById(id); 
    } 
    render(event); 
} 

public static void save(@Valid Event event) { 
    if (validation.hasErrors()) { 
     render("@form", event); 
    } 
    event.save(); 
    flash.success("event successfully saved!"); 
    list(); 
} 

私はそれが便利だ願っています..."リダイレクトポストの後に" アプローチについて

Saludos

サス

+0

良いですが、実際にはこのメソッドを使用しようとしていたので、同じページがリダイレクトされてリダイレクトされず、リダイレクトされず、結果がintにならないようにリダイレクトされました。 "あなたが戻ったらこのデータを再送信します"ブラウザーのポップアップ今回はクロムの中でそれを見ていなかったのですが...それで何が起こっていますか?通常、リダイレクトをしないとどうやって作業しているようですか? –

0

http://www.playframework.org/documentation/1.2.4/validation

は、あなたがこれについて知る必要があるすべてを教えてくれない理由はありますか?特に "validation.keep()"メソッドです。

+0

Validation.keepは私に答えを教えてくれませんか? Project.editProject(???????/???);それは私が探していたものです。また、Validation.keepは、レンダリングを使用するときではなく、リダイレクトを行うときにのみ使用します。私の例では、私はリダイレクトを行っているので、私は事故でそのコードを残しました(私はそれを再び追加します)。 –

1

、私はそのテーマに関する記事を書きました(スペイン語で、申し訳ありませんが、あなたはGoogle翻訳を試すことができます)

https://github.com/opensas/RedirectAfterPost/blob/master/README.md

サンプルアプリケーションのgit repoは次のとおりです。https://github.com/opensas/RedirectAfterPost

二つのアプローチ再:私たちは

  • たちはクッキーの大きさを持っていない自分自身のリダイレクトを惜しま

    • 長所を(それがzentalk例で行われているように)をリダイレクトすることなく、再び同じページをレンダリング制限の問題

    • コードはよりクリーンでより直感的です
    • オブジェクトとshをインスタンシエートするのが簡単です

      • エラーが発生した後、ユーザーがF5を押した場合、ブラウザは

      を再送信するために確認のメッセージが表示されます:私たちは、アイテムに

    両論を作成しているときOWそれはそれで、初期状態ですすべてのデータとエラーをフラッシュに保存し、リダイレクトを強制する

    プロ:

    • 主な利点は、エラーを受信した後、ユーザはF5を押した場合など、別のポストを発行からユーザーを防止することである(それはちょうどそれがリダイレクトした最後のGETを繰り返すことになる)

    試験にはサンプルだけ問題:

    ​​
  • +0

    この例では、私はそれが編集のように好きなものが好奇妙です...それは難しい部分です、そして、私はそれがかなり醜いと思うところです。 –

    +0

    他のチュートリアル(https://github.com/opensas/play-demo)私は追加と編集の両方を行っており、レンダリングされたアプローチ(リダイレクトはありません) – opensas

    0

    私はアヤックスとから盗むことができることを私自身の例をやってしまったが、ここで

    https://github.com/deanhiller/timecardz/blob/master/app/controllers/OurPattern.java

    を含まPOSTのため

    ビュー https://github.com/deanhiller/timecardz/tree/master/app/views/OurPattern

    重要なルートは、すべての一般的なものですので、彼らだけではなく、この1

    # Routes for all ajaxAddEdit and delete stuff 
    GET  /{controller}/ajaxAddEdit/{id}   {controller}.ajaxAddEdit 
    GET  /{controller}/ajaxDelete/{id}   {controller}.ajaxDelete 
    
    # Catch all 
    POST  /{controller}/{action}     {controller}.post{action} 
    

    ページに対するGETルートがあるだけで、特定のルートその後、すべてのコントローラのために使用することができます。少しの時間のために私が実行しているライブバージョンを持っている

    http://myextremestore.com/ourpattern

    で一種の例から欠落している唯一のことは、私の中にPOSTコール(予告の所有エンティティの検証ですコントローラ、postメソッドはpostXXXと呼ばれます)

    関連する問題