問題タブ [modelattribute]

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.

0 投票する
1 に答える
3317 参照

spring - @ModelAttributeをパラメーターとして持つSpringControllerメソッドのテスト

私はこの方法でコントローラーをテストしようとしています:

@RequestMapping(value = "/ test")
public ModelAndView generateRecords(@ModelAttribute( "Employee")Employee employee){

そして、これをテストするためのユニットテストを作成する方法を知りたいです。現在使用しているもの:

このテスト結果を実行すると、ModelAttribute(従業員)の値がNULLになります

統合テストを行うときにmodelattributeオブジェクトをControllerに渡す方法はありますか?

ありがとう


要約すると:

この問題の解決策は、html要素名を選択し、MockHttpRequestオブジェクトにパラメーター値を入力して渡すことです。

例:

0 投票する
10 に答える
112147 参照

redirect - あるSpring MVCコントローラーから別のコントローラーにモデル属性を渡す方法は?

コントローラーから別のコントローラーにリダイレクトしています。ただし、モデル属性を 2 番目のコントローラーに渡す必要もあります。

モデルをセッションに入れたくありません。

助けてください。

0 投票する
2 に答える
5450 参照

forms - Spring @ModelAttribute doesn't care about commandName

JSP:

And this is how I get the model in Spring:

And I can still use the weather to do my operations and it works great, for example:

My question is...Why does this work?

0 投票する
2 に答える
8626 参照

java - Spring MVC 3.0 モデル属性の継承

これが Spring MVC 3.0 で可能かどうかはわかりませんが、別のコントローラーを拡張し、モデル属性が親によって設定されたモデル属性に依存する注釈付きコントローラーを作成しようとしています。例えば:

これまでのところ、これを機能させることができませんでした。次の例外がスローされます。

リクエストの処理に失敗しました。ネストされた例外は org.springframework.beans.BeanInstantiationException: Bean クラスをインスタンス化できませんでした [java.util.List]: 指定されたクラスはインターフェイスです] 根本原因 org.springframework.beans.BeanInstantiationException: Bean クラスをインスタンス化できませんでした [java.util .List]: 指定されたクラスは、org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveModelAttribute(HandlerMethodInvoker.java:762) の org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:101) のインターフェースです。 ..など...

親によって設定された属性への依存が ChildModel.getNumber() から (パラメーターを削除することによって) 削除される@ModelAttribute("numbers") List<Integer> numbersと、両方のモデル属性メソッドが呼び出されます。ただし、ParentModel.getNumbers() は常に ChildModel.getNumber() の前に呼び出されます。

これを完全に機能させるために何か不足している場合、またはこれが不可能な場合はお知らせください。

前もって感謝します!

編集:

さらに実験を重ねた結果、モデル属性を他のモデル属性に依存させることはおそらくサポートされていないようです。両方のモデル属性メソッドを ParentModel に入れましたが、せいぜい散発的に機能します... 散発的な動作は、メソッドがリフレクションによって返される順序が原因である可能性があります。ParentModel.getNumbers() が ChildModel.getNumber() の前に (望ましい順序で) 呼び出されると、適切に機能します。これを発見したので、フォローアップの質問は次のとおりです。モデル属性メソッドが呼び出される順序を指定する方法はありますか?

0 投票する
1 に答える
2713 参照

java - リダイレクトを使用して複雑な ModelAttribute を渡す方法: Spring MVC 3.0 で

こんにちは、すべての質問です。答えを見つけるのに問題があります...

使用事例:

コントローラーで Excel スプレッドシートを読み取る。4 行のシートが処理され、2 行目と 3 行目にエラーがあったため、それらをスキップして残りの処理に進みます。しかし、これらの行を保持して、処理が完了した後にユーザーに表示したいと考えています。十分な情報を提供するためだけに、行のすべての値を保持してユーザーに表示したいと思います。

だから私がやろうとしたことはこれでした:

したがって、基本的に、実際に最初にページにアクセスすることなく、ある MVC メソッドから別の MVC メソッドに LinkedList を渡そうとしています (「redirect:」がどのように機能するかを誤解していない限り、最初にコントローラー メソッドが正しく呼び出されますか?)

bulkReview メソッドにブレーク ポイントを挿入すると、errorRows が空になります。では、2 つのメソッド間でこの値を保持するにはどうすればよいでしょうか。

助けてくれてありがとう!何か明確にする必要がある場合はお知らせください。:)

クリス

0 投票する
1 に答える
903 参照

spring - jspリクエストパラメータからのSpring3ModelAttribute

さまざまなフォームコンポーネントを取得して、対応するDAOオブジェクトに変換することは可能ですか?フォームごとにカスタムBean(すべてのフィールドをカプセル化する)を作成しないようにしています。

元:

現在、HttpRequestを使用し、値(29,63)を抽出し、それらを主キーとして使用して、正しいデータベースオブジェクトを検索する必要があります。ModelAttributeを使用してこれを自動配線する簡単な方法があるかどうかはわかりませんでした。

ありがとう!

0 投票する
1 に答える
6742 参照

java - Java - Spring 3.0 MVC および @ModelAttribute

Spring 3.0 MVC と @ModelAttribute アノテーション付きメソッド パラメータについて明確にする必要があります。次のようなコントローラーがあります。

私のhome.jspには、彼のデータをMyControllerのRequestMethod.POSTメソッドに送信するこのようなフォームがあります

home.jsp にアクセスしようとすると、次の例外が発生します。

これを解決するには、追加する必要があることがわかりました

そのメソッドでobjを使用しない場合でも、MyControllerのRequest.GETメソッドへのパラメーター。たとえば、次のように別の commandName を使用して別のフォームを home.jsp に追加するとします。

また、RequestMethod.GET にそのパラメーターを追加する必要があります。これは次のようになります。

または、同じ例外が発生します。私が求めているのは、これが通常の Spring 3 MVC の動作なのか、それとも何か間違っているのかということです。RequestMethod.GET メソッドにすべての @ModelAttribute パラメータを配置する必要があるのはなぜですか?

助けてくれてありがとう

ステファノ

0 投票する
1 に答える
3646 参照

spring-mvc - @ModelAttributeで形成されたモデルを別のコントローラーで使用することはできません

私のUserController.java

私のSuccessController.java

"user"モデルが入っていないSuccessControllerので、で使う${user.name}userSuccess.jsp何の価値もありません。

1行目にユーザーモデルを設定すると、別のコントローラーでこの値を取得しないのはなぜですか?を使用してこのモデルをSessionに保持@SessionAttributesすると、別のコントローラーでアクセスできます。

それでは、を使用して形成されたモデルの範囲は何@ModelAttributeですか?

0 投票する
1 に答える
1952 参照

spring - ModelMap属性の値がjspで変更されるのはなぜですか?

私は以下のコントローラーを持っています:

ChangeUserDetails.jspは次のとおりです。

jspでコマンドオブジェクトuserDetailsCmduserDetailsCmd.userType)の値を設定/変更すると、 user.userTypeの値が常に変更されるのはなぜですか?これは、両方が同じ属性名(userType)を持っているためですか?

編集: UserCommandクラス(コマンドオブジェクト)は:

そして、Userクラス(POJO)は次のとおりです。

0 投票する
1 に答える
1562 参照

java - なぜ春にこのメッセージが表示されるのですか?「BindingResultもBean名「removedTeam」のプレーンターゲットオブジェクトもリクエスト属性として使用できません」

これは、@RequestMappingアノテーションなどを理解するために私が書いている単純なプログラムです。私は2つのコントローラーを持っています。ホームコントローラーはホームページであり、home.jspをレンダリングします。チームコントローラーはteam.jspを処理します。ホームページには、データベースからチームオブジェクトを削除するチーム削除フォームがあります。それはうまくいきます。チームを追加するには、ユーザーはteam.jspに移動するリンクをクリックします。そのページで、ユーザーは新しいチームのデータを入力できます。ユーザーがこの情報を入力すると、データベースは正常に更新されます。次に、関数'storeTeam'は、ホームコントローラーの「ホーム」に戻ります。ここで問題が発生します。次のメッセージが表示されます。

「BindingResultもBean名「removedTeam」のプレーンターゲットオブジェクトもリクエスト属性として使用できません」

テーブルにデータベースの内容を再入力するためにhome関数を呼び出す必要があるのに、ホームコントローラーで「removeAteam」関数が呼び出されるのはなぜですか。関連するファイルは次のとおりです。助けてくれてありがとう。

TeamController.java

これらはコントローラーであり、ビューは次のとおりです。

home.jsp

team.jsp

サーブレットコンテキストは次のとおりです。

...そして最後にここにweb.xmlがあります