問題タブ [playframework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - PlayFrameworkを使用したRDSへのEC2接続
Playフレームワークを使用して構築した小さなサイトがあり、AmazonRDSインスタンスに対してEC2サーバーで実行しようとしています。RDSインスタンスに対して自分のマシンでアプリを実行でき、すべてが正常に機能します。しかし、EC2サーバーにデプロイすると、次のエラーが発生します。
私が最初に考えたのは、ある種のセキュリティ設定でしたが、同じユーザー名とパスワードで同じRDSインスタンスに接続している同じEC2サーバー上のTomcatでSpringベースのアプリケーションを実行していて、問題なく動作します。Playアプリのみに接続の問題があります。
なぜこれが起こっているのかについての説明や、それを修正する方法についてのアイデアを思い付くことができないようです。
誰かが前にこのようなものを見ましたか?
hibernate - データベースから取得せずに関連オブジェクトのIDを取得する(Play Framework)
私がこれらの2つのモデルを持っているとしましょう:
Cityオブジェクトがあり、関連する国のIDを知りたいです。実行することでデータベースからフェッチできましたcity.getCountry().getId()
が、それは非常に無駄に思えます。ID(データベーステーブルにとして格納されているcountry_id
)を取得するにはどうすればよいですか?
session - PlayFrameworkでのオブジェクトセッション
各ユーザーセッションのインスタンスオブジェクトを保存するにはどうすればよいですか?
複雑なアルゴリズムをモデル化するクラスがあります。このアルゴリズムは、段階的に実行するように設計されています。ユーザーごとにこのクラスのオブジェクトをインスタンス化する必要があります。各ユーザーは、インスタンスを段階的に進めることができる必要があります。
java - PlayFrameworkのカスタムチェック/検証の書き方
私はplay-frameworkのチェックを書いて、 2つの異なる可能性を見ようとしています。私は両方を説明し、私の理解が正しいかどうかを知りたいと思います(したがって、質問というよりはチュートリアルです。特に、何かを見逃したという応答が得られなかったためです)。したがって、どのような可能性が存在します。
- 簡単な方法:クラスを拡張する
Check
:
長所:書きやすく、読みやすい
短所:チェックをパラメーター化することはできず、メッセージを定義することしかできません。 - 高度な方法:OValに基づいてチェックを作成します
AbstractAnnotationCheck
。
長所:チェックをパラメーター化して、注釈をより簡単に使用できる
短所:もう少し複雑です。
実装を見る前に、メッセージについて説明したいと思います。メッセージはいつでも直接設定することも、キーを使用してメッセージプロパティでメッセージを参照することもできます。最後の方法は、よりクリーンで推奨される方法です。すべての検証は、少なくとも1つのパラメーターを取得します。無効なプロパティの名前。したがって、検証または特定のパラメータのチェックは、常に%i$s
i>1の場合に参照されます。メッセージ文字列の形式はFormatterの規則に従う必要がありますが、すべての機能がサポートされているかどうかはわかりません。私の知る限り、%s、%d、%fのみがポジショニングでサポートされています。したがって%[argument_index$][flags]conversion
、変換はs、d、またはfのみである可能性があります。
2つの例を見てみましょう。楽観的ロックのためにモジュールで使用した簡単な方法:
このチェックを注釈とともに使用します@CheckWith(value=OptimisticLockingCheck.class, message="optimisticLocking.modelHasChanged")
それでは、それがどのように機能するかを詳しく見てみましょう。私たちがしなければならない唯一のことは、クラスplay.data.validation.Checkを拡張し、isSatisfiedメソッドを上書きすることです。ここで、モデルとプロパティの値を取得します。あなたがしなければならないのは、すべてがOKの場合はtrueを返し、それ以外の場合はfalseを返すことです。この例では、現在のURLをパラメーターとして設定します。これは、setMessage()を呼び出すことで簡単に実行できます。メッセージのプロパティとパラメータで定義されているメッセージまたはメッセージキーを提供します。最初のパラメーターは常にプロパティの名前であるため、1つのパラメーターのみを指定しますが、%2$sで参照されることを忘れないでください。
プレイの範囲チェックに基づく複雑な方法:最初に注釈を定義する必要があります
そしてチェック
OK注釈は説明する必要はないと思います。チェックを見てみましょう。この場合、それはextendsnet.sf.oval.configuration.annotation.AbstractAnnotationCheck
です。アノテーションを取得してパラメーターをコピーできるconfigure-methodを作成する必要があります。次に、チェックを定義する必要があります。これは、他のチェックの実装に類似しています。したがって、条件を記述してtrueまたはfalseを返すだけですが、特別な1行を除きます。パラメータ化されたメッセージを使用した場合はrequireMessageVariablesRecreation();
、メソッドを呼び出す必要があります。少なくとも、メソッドをオーバーライドする必要がありますcreateMessageVariables
。ここでは、ちょっとした遊びの知識を得る必要があります(他のすべてのものはここで説明されています)。キーと値を使用してメッセージをマップに配置しますが、playは値のみを取得します(を参照)ValidCheck.java
フレームワークコードで)。したがって、位置によって参照されます。これが、の代わりにRangeCheck
usingの実装を変更した理由です。さらに、キーを参照できるインデックスから始めます。TreeMap
HashMap
だから私はこれが遊びのためのカスタム検証/チェックを書く方法をより明確にすることを願っています。説明が正しいことを願っています。そのため、私の理解は正しいのでしょうか。
hibernate - 遊びの中の javax.persistence/hibernate
私は hibernate と Java の両方を初めて使用します。単純な user->groups->permissions モデルを playframework で定義しようとしています。データベース レベルでオン デリート カスケード ルールを適用したいのですが、Orm に気にさせたくないのです。カスケード (python-sqlalchemy パッシブ削除に似たもの)、ここに私のモデルがあります:
ユーザーモデル:
グループ モデル:
許可モデル:
GroupPermission モデル:
ユーザー グループ モデル:
これにより、postgres で次の sql が生成されます。
テーブル auth_user のユーザー名フィールドのインデックスが作成されていないことがわかるように、テーブル user_groups の制約が重複しています。ON DELETE CASCADE と ON DELETE NO ACTION の両方があります。テーブル group_permissions にはカスケード バージョンのみが必要です。カスケード ルールは作成されません。
どうしたの?
ありがとうニコラ
java - PlayFrameworkrenderJSONの問題
Play Frameworkを初めて使用し、JSONオブジェクトのレンダリングに問題があります。
これは表示されるだけ[[{},{}],[{},{}],[{},{}]]
です...私は何が間違っているのですか?これに関する確かなドキュメントは見つかりません。のルートを設定しようとしましApplication.LoginFail(format:'json')
たが、何もしませんでした。
google-app-engine - Play Framework と Google App Engine で PDF を作成するにはどうすればよいですか?
Play Framework と Google App Engine で PDF を作成する必要があります。誰も方法を知っていますか?
java - PlayFrameworkを使用してHibernateで複数の値をバインドする
Playフレームワークでクエリを作成しようとしています。
:schoolを1つの要素でListにバインドすると結果が返されますが、Listを複数の要素でバインドしても何も起こりません。
実は私は次のようなものが必要です
候補者と学校の関係はリンクされた表にあります。
複数の値をバインドする方法はありますか?
internet-explorer - 異なるブラウザーを使用した playframework でのファイルのアップロード
playframework を使用して Web サイトを構築しています。また、 xheditorという名前のリッチ エディターも使用します。
Xheditor は ajax-fileuploading をサポートします。サーバー側には、アップロード ファイルを含む「filedata」パラメーターを受け入れるアクションが必要です。
だから私はアップロードアクションを書きました:
IE6 では問題なく動作します。filedata は null ではなく、正しいデータが含まれています。しかし、クロムまたはファイアフォックスを使用すると、ファイルデータはnullです!!
firebug を使用して、firebug が送信するものを監視し、そのようなヘッダーを送信することを発見しました。
play がこのケースを正しく処理していないと思うので、パラメータ "filedata" は null です。
chrome と firefox で動作するように、そのアクションを変更しました。
これは IE6、chrome、firefox で動作しますが、アップロード ファイルが非常に小さい場合のみです。たとえば、4K 未満。12K など少し大きい場合、メソッド「IOUtils.copy」は「読み取りエラー!」を報告します。次のコードでもそのようなエラーが報告されます。
playframework - play-controller のリダイレクト動作に影響を与えるにはどうすればよいですか?
プレイ中は、コントローラーの public-method から呼び出す場合、常にRedirect-After-Post-Pattern に従います。ほとんどの場合、これは適切な動作ですが、場合によっては厄介な場合があります。そこで、play 1.1 でどのように動作するかを調べてみました!: 基本は、.NET で行われるバイトコード拡張play.classloading.enhancers.ControllersEnhancer
です。そこには、デフォルトの動作のいくつかの例外がまだ存在することがわかります。
- メソッドが package の注釈によって注釈付けされている場合、
play.mvc
たとえば Before-annotation です。 - アクションに
ByPass
-Annotation で注釈を付けます。この Annotation は内部クラスである必要があるため、名前は endWith$ByPass
です。
リダイレクトを常に抑制したい場合は、どちらのソリューションでも問題ありません。しかし、特別な状況でのみそれを行いたい場合はどうしますか? その後、 を呼び出すことができますControllerInstrumentation.initActionCall()
。
それについての説明は見つかりません。コードを分析するだけです。私の結論は正しいですか、それとも欠点がありますか?