問題タブ [spring-mvc]
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 - 単体テスト vs Spring との統合テスト
私は Spring MVC プロジェクトに取り組んでおり、ソース ツリー内のさまざまなコンポーネントすべての単体テストを行っています。
たとえば、コントローラーHomeController
を挿入する必要があるLoginService
場合、単体テストではHomeControllerTest
、オブジェクトを通常どおり (Spring の外部で) インスタンス化し、プロパティを挿入します。
これは、各コンポーネントを分離されたユニットとしてテストするのに最適です-プロジェクトに数十のクラスがあることを除いて、クラスを作成し、それに対して成功したユニットテストを作成した後、Spring MVC コンテキストファイルを更新するのを忘れ続けます展開されたアプリケーションでの実際の接続。プロジェクトを Tomcat にデプロイし、接続されていない Bean から多数の NullPointer を見つけたときに、コンテキスト ファイルを更新するのを忘れていたことに気付きました。
だから、ここに私の質問があります:
これは私の最初の Spring プロジェクトです。私が行ったように、個々の Bean の単体テストを作成してから、2 番目のテスト スイート (統合テスト) を作成して、すべてが実際のアプリケーション コンテキストで期待どおりに機能することをテストするのは正常ですか? これに対する確立されたベストプラクティスはありますか?
さらに、単体テストを統合テストからどのように分離しますか? すべてのソース コードは
src
にあり、ユニット テストはにあります。統合テスト ケース用にtest
2 つ目のテスト フォルダ ( など) が必要ですか?test-integration
これは私の最初の Spring プロジェクトなので、他の人が通常この種のことをどのように行っているのか興味があります。車輪を再発明するのではなく、コミュニティの他のメンバーに尋ねます。
java - Spring MVC でコレクション属性をフォームにバインドするにはどうすればよいですか
Spring-MVC を使用して、モデル オブジェクトの 1 つをフォームのフィールドにバインドしようとしています。モデル オブジェクトの属性の 1 つが順序付けられていないコレクションであることを除いて、すべて正常に動作します。のようなことをする
List タイプのプロパティでは問題なく動作しますが、Set では、送信時に入力フィールドの内容をオブジェクト属性にバインドしようとするとエラーがスローされます。
セットですぐに使えるSpringの何かがありますか?
spring - さまざまな DispatcherServlet.detectAllXxx フラグの使用例は何ですか?
Spring Web MVC では、DispatcherServlet に次のような一連のフラグがあります。
detectAllHandlerMappings detectAllHandlerAdapters detectAllHandlerExceptionResolvers detectAllViewResolvers
これにより、アプリ コンテキストで型が一致するすべての Bean を検索するか、特定の ID で一致する最大 1 つの Bean を検索するかを選択できます。それらはすべてデフォルトで true です。
これらの適切な使用例を見つけようとしています。具体的には、1 つを false に設定する説得力のある状況はありますか?
javascript - 古い CSS と JavaScript を防止するためのベスト プラクティスとは
私はプロジェクトのためにこれを調査していますが、新しいリリースごとに古い CSS および JavaScript ファイルが提供されるのを防ぐために他の人が何をしているのか疑問に思っています。すべてのリクエストでキャッシュを妨げる可能性のあるタイムスタンプなどを追加したくありません。
私はSpring 2.5 MVCフレームワークを使用しており、すでにGoogle APIを使用してプロトタイプとscriptaculousを提供しています。また、Amazon S3 と新しい Cloudfront サービスを使用して、ネットワークのレイテンシを最小限に抑えることも検討しています。
java - 休止状態で基準オブジェクトを再利用する方法は?
hibernate と displaytag を使用してクエリ結果のページネーションを実行しようとしていますが、HibernateDetachedCriteria
オブジェクトが邪魔をしようと最善を尽くしています。説明させてください...
displaytag でページネーションを行う最も簡単な方法PaginatedList
は、特に次のメソッドを持つインターフェイスを実装することです。
PaginatedList の実装に Criteria オブジェクトを投げて、これらの線に沿って動作させることを考えています...
しかし、これは機能しません。これは、addOrder()
または のsetProjection()
呼び出しによって条件オブジェクトが変更され、後続の呼び出しで使用できなくなるためです。呼び出しの順序は完全にはわかりませんが、データベースはgetFullListSize()
" " を実行しようとするとエラーをスローしますが、select count(*) ... order by ...
これは明らかに間違っています。
独自のオブジェクトを作成してクエリ条件を追跡し、呼び出しごとに Criteria オブジェクトを再構築することでこれを修正できると思いますが、それはさらに別の車輪を再発明するように感じます. おそらく最初に渡された基準をコピーし、そのコピーで作業する、よりスマートな方法はありますか?
更新getList
:最初に呼び出さように見えるgetFullListSize
ため、順序が渡されるとすぐにgetFullListSize
失敗します。オブジェクトをコピー/リセットする必要なく、データベースに1回だけアクセスして(getList
私が言うには)結果をキャッシュするCriteria
ますが、それでも...
更新 (再度) : それは忘れてcount
くださいselect
。本当に 2 つの異なるCriteria
オブジェクトが必要です。
java - MVCアプリのビューレイヤーにJSTLとVelocityを使用する利点は?
現在、Spring MVC アプリケーションを構築しています。ビュー レイヤーと HTML の書式設定を処理するために、タグ ライブラリを備えた JSP ページを使用しようとしていましたが、同じ目的で Velocity テンプレートを使用している社内の別のグループに出会いました。
私が見る限り、2 つのアプローチには多くの類似点があるように思えます。
- どちらもわかりやすい構文です。開発者以外が簡単に理解して使用できるようにすることで、デザイナーは HTML/CSS に集中でき、ディレクティブ/タグ ライブラリを使用する必要があるのは、条件付き/動的コンテンツを完全に理解する必要がない場合に限られます。ジャバ。
- コンテンツのどの部分が HTML であるか、どの部分がディレクティブ/ロジックであるかを簡単に確認できます。
- どちらも頻繁に使用され、十分にサポートされています。
- Spring MVC と簡単に統合できます。
しかし、2 つのテクノロジを比較しても、どちらか一方を使用する特定の理由はわかりません。Velocity または JSTL に固有の短所を考えるのに苦労しています。
私の質問は、それぞれの長所と短所は何だと思いますか? どちらか一方を使用して (Spring) MVC アプリを構築した場合、使用しているビュー レイヤー テクノロジを決定した理由は何ですか。
更新: Spring Framework フォーラムのhereにアーカイブされたこの同じトピックに関する同様の議論を見つけました。これは、私と同じように JSTL と Velocity の間で同じ決定を下す人にとって興味深いものになるかもしれません。
spring - Spring を使用した JSP ベースのテンプレート化
JSP ビューで Spring の MVC を使用しています。すべての JSP ページには、ヘッダー、コンテンツ、フッター、おそらくサイドバーなど、似たような構造があります。「ベスト プラクティス」について調べてみると、人々はフッターとヘッダーを「インクルード」しているように見えますが、それはすべての JSP ページにこれらの「インクルード」ステートメントが含まれていることを意味します。固定フォーマットを与える。私の目には、問題のページに適切な情報で基本テンプレートが拡張される、ネストされたビューを含むより良い解決策があります。このアプローチの利点の 1 つは、基本テンプレートで想定されるデフォルト値を他の場所で繰り返さずに使用できることです。もう 1 つの利点は、構造とコンテンツをさらに分離できることです (「ヘッダー」と「フッター」は構造的であり、
Spring の MVC レベルではこれに対するサポートはないようですが、カスタム タグを使用して JSP に実装することはできます。邪魔にならないようにすることはできると思いますが)。
とにかく、私の質問は - これは (一般的な/標準の) タグ ライブラリとして既に存在しますか? 私はカスタムタグを書くことに満足していますが、この作業 (Web サイトの生成) についての私の印象は、適切なツール (Spring など) の選択にほとんどの作業が費やされており、すでに膨大な範囲のソリューションが存在するということです。ありがとう。
spring-mvc - Spring 2.5は、着信リクエストデータをModelAttributeコマンドにどのようにマッピングしますか?
私はSpring2.0を使用していましたが、現在はSpring 2.5を使用しています。当然のことながら、Spring 2.5は、Webコントローラーに関する限り非常に簡単です。2.0では、コマンドクラスを設定する必要があり、それに応じて、AbstractFormControllerを使用してそのコマンドオブジェクトを設定する必要があるという質問が頭に浮かびます。Spring 2.5ではそれを行わないので、どのクラスを使用するかがどうやってわかるのでしょうか。@ModelAttribute( "command")に注釈を付けたパラメーターのタイプに依存しますか?
はいの場合は、HttpRequestとクラス名(またはClassオブジェクト)を渡すことができ、入力されたオブジェクトを返す正確なメカニズムを提供する「Utils」クラスを教えてください。
私の質問がありますように。
前もって感謝します。
spring - Spring MVC タグとカスタム タグの相互作用
Spring:form タグを使用してコントロールをコマンド オブジェクトにバインドする JSP があります。
次のように変更したいと思います。それ以外の場合は、テキストを表示するだけです。(例: ユーザーが管理者の場合はコントロールを表示し、それ以外の場合はテキストのみを表示します。whatsit がまだ変更のために開いている場合はコントロールを表示し、それ以外の場合はテキストを表示します。)
言い換えれば、私はこれが欲しい:
しかし、すべてのフィールドに対してこれを作成する簡単な方法が必要です (多数あります)。
上記のテキストを生成するカスタム タグを作成すると ("SOME PATH" を指定)、Spring カスタム タグはバインドされますか?
私が本当に求めているのは、Spring カスタム タグを生成してからバインドするカスタム タグを作成できるかということだと思います。それとも、すべてのカスタム タグ (私のものと Spring のもの) が同時に処理されますか?