@RequestParam、あなたはそれを見たに違いありません。 @pathvariable、あなたはそれを知っているに違いありません。 @queryparam、なぜあなたはそれを知らないのですか? !そして彼はあなたに馴染みがあります(@CookieValue)!彼女(@modelandview)!それ(@modelattribute)!そうです、これに注目するだけで、Spring MVCはあなたのためにカラフルな世界を開きます。さあ、興奮しないでください(mi)と(hu)、座って、これらの注釈兄弟について良いチャットをしましょう(待って、聞いたことがないですか?
1.スプリングMVCのリクエストパスを一致させる方法 - 「どのリクエストパスが優れているか、リクエストマッピングはよく知られています」
@RequestMappingは、GETリクエスト、投稿リクエスト、またはレストスタイルや非レストスタイルなどのリクエストをマッピングするために使用されます。この注釈は、クラスで使用される場合、クラスのすべてのメソッドの親パスを表すクラスまたはメソッドで使用できます。
たとえば(SpringMvctestなどでここで使用されるテストクラスやいくつかのページが、最初の記事「SpringMVC Learning -Helloworldから始まる」で紹介されています):
springmvctest.javaにテスト方法を追加します:
@RequestMapping( "/testRequestMapping")public string testRequestMapping(){system.out.println( "testRequestMapping");成功を返す;}Annotation @RequestMapping( "/testRequestMapping")がメソッドレベルに追加されることに注意してください。つまり、この方法は「/testrequestmapping」の相対パスを介して配置できます。同時に、SpringMVCtestクラスにクラスレベルのリクエストマッピングアノテーションを掲載しました。
@RequestMapping( "/springmvc")@ControllPublic Class SpringMVCtest {@Controllerの注釈もあることに注意してください。この注釈は、SpringMVCのDispatcherServletによって配布されたリクエストを処理する責任があります。サービス処理層を介してユーザーが要求したデータをカプセル化し、モデルを表示するために対応するビューに戻します。この時点で、「SpringMVC/TestRequestMapping」などのパスがあり、TestRequestMappingメソッドを見つけて、メソッド内でメソッド本体を実行できます。
もう1つ追加するには、RequestMappingが次のようなファジーマッチングパスを実装できます。
? :文字を一致させます
*:任意の文字に一致します
**:マルチ層パスを一致させます
/springmvc/**/lastTestは、/springmvc/firstTest/secondTest/lastTestなどのパスを一致させることができます
2。スプリングMVCの要求されたパラメーターを取得する方法 - 「8つの不死身が海を渡り、それぞれが魔法の力を示しています」
1。 @pathvariable
この注釈は、リクエストURLにバインドされたプレースホルダーをマッピングするために使用されます。 @pathvariableを介して、URLのプレースホルダーのパラメーターをコントローラー処理方法のパラメーターにバインドできます。わかりませんか?例を参照してください:
@RequestMapping( "/testpathvariable/{id}")public string testpathvariable(@pathvariable(value = "id")integer id){system.out.println( "testpathvariable:" + id);成功を返す;}index.jspで接続を追加してリクエストをトリガーします。
<a href = "springmvc/testpathvariable/1"> testpathvariable </a> <br/> <br/>
ここにハイパーリンクがあることがわかります。クリックした後、SpringMVC/TestPathVariable/1に対応するコントローラー処理方法を入力します。このリクエストパラメーターで「1」を取得したいので、「/testpathvariable/id」をtestpathvariableメソッド、id、および{id}の特定の対応に追加します。
2。@RequestParam
この注釈は、リクエストパラメーターを取得するためにも使用されます。では、この注釈は @pathvariableとどう違うのでしょうか?例を見てみましょう:
springmvctestにメソッドを追加します
@RequestMapping(value = "/testRequestParam")public string testRequestParam(@RequestParam(value = "username")String username、 @requestParam(value = "age"、exiceber = false、false、 "0"){system.out.out.println( " +" + " +" + " +" + " +" + "成功を返す;}index.jspにハイパーリンクタグを追加します
<a href = "springmvc/testrequestparam?username = jackie&age = 12"> testRequestParam </a> <br/> <br/>
ページのハイパーリンクをクリックすると、コントローラーのTestRequestParamメソッドのRequestMappingのパスと一致します。この方法では、Annotation @RequestParamを介して2つの変数を宣言して、リクエストでクエリによって提出されたパラメーター値を取得することに注意してください。1つはユーザー名の後の値であり、もう1つは年齢後の値です。
これを見た後、 @pathvariableと@requestparamの違いのいくつかをおそらく理解しています。 「springmvc/testpathvariable/1」などのリクエストについては、 @pathvariableを使用して要求されたパラメーターをバインドします。一方、「SpringMVC/TestRequestParam?username = jackie&age = 12」などのリクエストパラメーターの場合、キー価値のペアとして表示されます。 @RequestParamを使用して、ユーザー名または年齢の後に特定の要求値を取得します。
QueryParamはRequestParamにも似ています。これは、Spring MVCフレームワーク内の注釈ではないため、ここでは詳しく説明しないためです。
さまざまなリクエストタイプとリクエスト方法について、Spring MVCには一連のターゲットソリューションがあります。人気のあるレストスタイルのリクエストが今のようなものであるものを見てみましょう。レストスタイルを使用して、追加、削除、修正、検索を実現してください。
チェック(get)、追加(post)、削除(削除)、および変更(put)のインターフェイスのボトムアップ実装は、ボトムアップからspringmvctestクラスに実装されています
@RequestMapping(value = "/testrest/{id}"、method = requestmethod.put)public string testrestput(@pathvariable(value = "id")integer id){system.out.println( "test put:" + id); return success;} @requestmapping(value = "/testrest/{id}"、method = requestmethod.delete)public string testrestdelete( @pathvariable(value = "id")integer id){system.out.println( "test delete:" + id); return success;} @requestMapping(value = "/testrest"、method = requestmethod.post)public string testrest(){system.out.println( "test post"); return success;} @requestmapping(value = "/testrest/{id}"、method = requestmethod.get)public string testrest( @pathvariable(value = "id")integer id){system.out.println( "test get:" + id);成功を返す;}では、フロントデスクインターフェイスを実装する方法は?対応する順序はです
<form action = "springmvc/testrest/1" method = "post"> <input type = "hidden" name = "_ method" value = "put"/> <input Type = "submit" value = "testrestput"/> </form> <br/> <form action = "springmvc/testrest/1" method = "post =" dided ""/> <dide " type = "submit" value = "testrest delete"/> </form> <br> <br> <form action = "springmvc/testrest" method = "post"> <入力タイプ= "" value = "testrestpost"> </form/> <br/> <br/> <a href = "springmvc/testrest/1"> testrest </a>
さらに、ConfigurationファイルWeb.xmlに、転換をサポートしてリクエストを削除して配置するステートメントを追加する必要があります。
<! - Hiddenhttpmethodfilterを構成:投稿リクエストを削除または投稿リクエストに変換できます - > <filter> <filter> <filter-name> hiddenhttpmethodfilter </filter-name> <filter-class> org.springframework.web.filter.hiddenhttpmethfilter </filter-maps> <filter-name> hiddenhttpmethodfilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
ご覧のとおり、ここでは削除と変更を直接実装するためにここではサポートされていないため、ここでの変更と削除は投稿から送信されます。代わりに、POSTメソッドを使用して、トークンの非表示タイプの入力タグを静かに持ち込み、フロントデスクで送信したものが実際に削除と変更のリクエストであることを背景に伝えます。
したがって、このプロセスはどのように実装されていますか、なぜ追加されます
<入力型= "hidden" name = "_ method" value = "delete"/>
このトークンは、バックグラウンドで他の人によって購入されます。それでは、後でそれをどのように購入したか見てみましょう。
最終分析では、web.xmlにHiddenhttpmethodfilterクラスが追加されたためです。このクラスには、dofilterinternalの方法があります。デバッグを通して、手がかりを見つけて、Tomcat(Tomcat8ではなく)を開始し、削除操作の対応する入力タグをクリックして、デバッグインターフェイスを入力します。わかります:
Small Pit:ここでは、スタートアップはTomcat8になることはできませんが、7や6などの8よりも小さいバージョンにすぎないことに注意してください。次の図は、Tomcatを使用したエラーメッセージと7を使用した成功した応答を示しています。
要約すると、Put and Deleteのリクエストを送信する方法:
1.web.xmlでhiddenhttpmethodfilterを構成します
2。投稿リクエストを送信します
3.リクエストには隠されたドメインがあり、名前は「_mothod」、値は配置または削除されます
最後に、annotation @cookievalueについて話しましょう。
3。@CookieValue
この注釈も同様のルーチンであり、クッキー値をマッピングするマッピングでもあります。
リクエストを送信すると、リクエストがいくつかのCookie値を掲載していることがわかります。
たとえば、ここのjsessionidまたはパス。次に、Cookie値を取得する方法を作成します。
springmvctestを追加します
@RequestMapping(value = "/testCookieValue")public string testCookieValue(@CookieValue( "jSessionId")string cookievalue){system.out.println( "testcookievalue:" + cookievalue);成功を返す;}index.jspインターフェイスにリンクを追加します
<a href = "springmvc/testcookievalue"> testcookievalue </a> <br/> <br/>
このようにして、「testCookieValue:1410F05C9ADD84E8659C2AC79E8CC666」などの結果を得ることができます。
これまでに紹介しました
1。@RequestMappingの使用
2。リクエストパラメーターの @pathvariableと@requestparamの使用法を取得します
3.レストスタイルのリクエストを実装する方法を紹介し、投稿が削除とパットリクエストに変換される方法を分析する
4。@CookieValueの使用法の紹介
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。