問題タブ [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.
java - Spring MVCの@ModelAttributeとは何ですか?
@ModelAttribute
Spring MVCでの目的と使用法は何ですか?
spring-mvc - Springは@ModelAttributeのGETリクエストでPOJOをどのようにエンコードしますか?
次のように設定されたSpring MVCコントローラーがあります。
PaginationArgs は 2 フィールドの POJO です。の値を含む URL 文字列を作成したいと考えていますpaginationargs
。parent
とexpand
-に対して行うのは簡単ですがactivityChart?parent=foo&expand=bar&expand=baz
、POJO のフィールドをエンコードする正しい方法は何でしょうか?
JSP は Spring で<form:form modelAttribute='paginationargs'>
タグを使用してこれを処理しますが、私たちのプロジェクトは JSP を使用せず、代わりに Jamon を使用します。
json - Spring 3.0.5-ハンドラーメソッドのシグネチャに@ModelAttributeを追加すると、JsonMappingExceptionが発生します
これが私の側の設定ミスなのか@ModelAttribute
、自動JSONコンテンツ変換を介して何ができるのかについての誤解なのか、SpringまたはJacksonのバグなのかはわかりません。もちろん、後者であることが判明した場合は、適切な人々に問題を提出します。
@ModelAttribute
コントローラのハンドラメソッドにを追加する際に問題が発生しました。このメソッドの目的は、フォームまたは以前の送信から入力されたBeanを公開することですが、実際にBeanにデータを送信しなくても問題を再現できます。
Springmvc-showcaseサンプルを使用しています。現在Spring3.1を使用していますが、3.0.5のセットアップでこの問題に最初に遭遇し、再現することができます。mvc-showcaseサンプルは、かなり標準的なservlet-context.xmlを使用しています。
サーブレット-context.xml
ファイルで参照されているのcontrollers.xml
は、ルートパスに関連するコンポーネントスキャンとビューコントローラーを設定するだけです。関連するスニペットは以下のとおりです。
controllers.xml
私が提供しようとしているテストBeanは、非常に単純なPOJOです。
TestBean.java
そして最後に、これもシンプルなコントローラーです。
TestController.java
マップされたパスを介してコントローラーを呼び出すと、/mvc-showcase/test/beanOnly
期待どおりにBeanのJSON表現が得られます。ハンドラーを呼び出すと、呼び出しに関連付けられwithoutModel
たSpringオブジェクトのJSON表現が提供されます。Model
戻り値には最初の宣言からの暗黙的なものが含まれてい@ModelAttribute
ますが、Beanはメソッドで使用できません。たとえば、フォーム送信の結果を処理してJSON応答メッセージを返したい場合は、その属性が必要です。
最後の方法では、が追加され、@ModelAttribute
ここで問題が発生します。呼び出す/mvc-showcase/test/withModel
と例外が発生します。
3.0.5のインストールでは、FormattingConversionServiceのシリアライザーがないためにJsonMappingExceptionが発生します。3.1.0サンプルでは、DefaultConversionServiceのシリアライザーがないために例外が発生します。ここに3.1の例外を含めます。パスが少し異なっていても、根本的な原因は同じようです。
3.1 org.codehaus.jackson.map.JsonMappingException
それで、Jacksonコンバーターが@ModelAttribute
メソッドシグネチャ内のハンドラーから派生した応答を適切に処理できるようにするために欠落している構成はありますか?そうでない場合、これが春のバグであるかジャクソンのバグである可能性が高いかについての考えはありますか?この時点で、私は春に傾いています。
spring-mvc - Spring MVC、タイル、複数のコントローラー
今後のプロジェクトのためにSpring MVCを試しています。複数の再利用可能な「コンポーネント」をレンダリングするには、アプリケーションにいくつかの Web ページが必要ですが、タイルはこれを達成するのに役立つと思いますか? 各コンポーネントには独自のコントローラーがあります。
私がまとめた例は、部分的にしか機能していません。3 タイルのページです。3 番目のタイルには、(@ModelAttribute 注釈を介して) ArrayList をクライアントに返そうとするコントローラーがありますが、ビューがタイルとして含まれている場合、ArrayList は空です。
*-servlet.xml でのタイルのセットアップは次のとおりです。
ここに私のタイル構成(tiles.xml)があります:
問題のタイルの背後にある JSP コードを次に示します。「widgetsList」式はコントローラー メソッドにバインドされているものですが、このビューがタイルとして含まれている場合は空に戻ります。
コントローラーは次のとおりです。
ビュー「widgets.jsp」に直接アクセスすると、「widgetsList」属性が設定されます。タイルとして追加された場合にのみ、何も返されません。
java - @ModelAttributeメソッドでアクセスすると、@RequestParamはnullになります
私は、ユーザーが新しいフォームの送信を開始するか、以前に開始したフォームの送信を続行するかを選択できるプロジェクトに取り組んでいます。@ModelAttribute表記を使用して、新しいフォーム送信用の新しいオブジェクトを生成しています。これは非常にうまく機能します。今、私はデータベースから情報を取得して、指定されたIDに基づいてオブジェクトに情報を事前に入力しようとしていますが、問題が発生しました。@RequestParamを使用して、フォーム送信を使用して渡されたIDを取得しようとしていますが、IDがnullに戻っています。IDがリクエスト文字列の一部として送信されていることがわかりますが、@ModelAttributeメソッドに送信されていません。これが私がこれまでに持っているものです。
フォームに事前入力できるようにregIdを送信するために送信されるフォーム
モデル属性メソッド
マッピング方法のリクエスト
フォームを送信するときに、@ ModelAttruibuteメソッドでregIdがnullになる理由を誰かが理解するのを手伝ってもらえますか?前もって感謝します!
java - Spring Web MVC と新しい Bean
Spring 3.0.5 Web MVC ベースのアプリケーションに取り組んでいます。私たちのコードでは、次のようなことを頻繁に行います。
これは必要ないと思います。しかし、実際にそうでなかったとしたら、どうしてこれほど多くのコード レビューをすり抜けることができたのだろうか? 私の理解では、コントローラーメソッドが新しい SomeBean を必要とする場合、そのメソッドのパラメーターに @ModelAttribute で注釈を付けるだけで十分でしょうか? 次に、Spring はデフォルトのコンストラクターを使用して、コントローラー メソッドを呼び出すために必要な Bean を新しくします。
ここで、Spring は SomeBean のインスタンスを新しく作成し、POST されたデータからそれにデータ バインドしようとしますよね? 最初のコード スニペットに示されているようなメソッドは必要ありませんか? これを確認するか、これについてのあなたの考えを教えてください。先に進んで、空の Bean を新たに作成する以外に何もしないこれらすべてのメソッドを削除した場合、リスクが発生しますか?
java - ModelAttribute をプリミティブにすることはできますか?
Spring MVC 3.0 の ModelAttribute で奇妙な問題が発生しています。アプリを localhost にデプロイすると、正常に動作します。しかし、アプリをリモート サーバーにデプロイすると、ユーザーが特定のアクションにアクセスするたびに次のエラーで失敗します。
そのコントローラーで ModelAttribute を初期化するために使用するコードは次のとおりです。
私の知る限り、このバグは私のローカル ワークステーションでは再現できません。そして、アクションが呼び出される前に発生します。
HandlerMethodInvoker.java (行 762) を見ると、次の行が表示されます。
私の経験豊富な仲間は、プリミティブ型の ModelAttribute(long) にはコンストラクターがないため、この行が問題を引き起こすと考えています。その理由はおそらく正しいと思いますが、ローカル サーバーで Web アプリケーションが正常に動作することをどのように説明できますか?
ModelAttribute がプリミティブ データ型をサポートしているかどうかを検索しようとしましたが、良い結果は得られませんでした。誰もこの問題について経験がありますか?
java - コントローラーで処理された後、Spring MVC で @ModelAttribute をリセットする方法は?
@ModelAttribute("mymodel") を定義しました
問題は、save メソッドでモデルをリセットしても、保存操作の後にページをリロードして 2 回目の保存を行うと、モデルには前の のすべての値が含まれることですmyModel
。
処理後にリセットするにはどうすればよいですか?
java - spring mvc3 で ModelAttribute のリストをバインドする方法
ユーザー.java
Link.java
ユーザーコントローラー.java
user.jsp
誰が私にそれを行う方法を教えてくれますか!
spring-mvc - ModelMap 属性が値を渡さない
モデルマップ属性に問題があります..これは私の xyz.jsp ファイルです..
そしてコントローラクラス...
しかし、Webページでは、ドロップダウンにオプションが表示されません..表示されるのは、「$ {section.description}」という1つの値だけです..実際、これはhtmlのソースです..
ここで私が間違っていることについて何か助けはありますか? ありがとう!