道路SSMは_初日に--springMVCいくつかの注意を学びます

@RequestParam

前述したように、リクエストパラメータがまったく同じ場合は、要求は、パラメータとパラメータメソッドパラメータを介して受信され、結合が、フロントとリアエンドは二人で書き込むことができ、渡されたパラメータのフロントエンドは名前ですが、私は、バックエンドのメソッドパラメータを書きましたユーザ名、矛盾を見つけるための時間があり、パラメータを変更することが、すべては、このパラメータに関連する方法を変更する必要があり、非常に不便。(もちろん、パラメータを変更することができた場合、フロントエンドのように、ああ...)
この@RequestParamノートには、使用している
:役割
コントローラのパラメータ割り付けへの要求で指定されたパラメータ名を。
属性:
値:リクエスト内のパラメータの名前。
必要:リクエストパラメータは、このパラメータを提供する必要があります。デフォルト値はtrue。あなたがエラーを提供しない場合は表現が提供されなければなりません。

<a href= "anno/testRequestParam?name=haha&pass=123">testRequestParam</a>
@Controller
@RequestMapping("/anno")
public class annoController {
    @RequestMapping("/testRequestParam")
    public String testRequestParam(@RequestParam(name = "username",required = false)String name, @RequestParam("pass") String password){
        System.out.println("方法执行了...");
        System.out.println(name);
        System.out.println(password);
        return "success";
    }
}

コード、パラメータ名とパス上を通過するには、GETリクエストのフロントエンドが、パラメータ名とパスワードの後端

結果:
ここに画像を挿入説明
なぜ名前がnullの?
図は、この表示
後、注釈は、パラメータ受信に割り当てられている、注釈に渡されるパラメータの要求として理解することができる
ここに画像を挿入説明
ノートは、ユーザ名に書かれているので、=偽を必要とし、それはしないので、ない対応を行い、名前のために、だから、それは、与えられたが、取得していないことから、ユーザ名は、その名前のパラメータがnullのユーザ名が最終的なメソッド名がnullで取得するには、それに渡され取得するには、ヌル、ヌルのユーザー名と、名前に送信されます。

パスの目的のために:パス・パス要求と対応するパラメータに関するコメント、注釈パスpasswordパラメータに転送し、その後、正常に配信され、それを印刷することができます。

@RequestBody

処置:
そのコンテンツを取得するための要求。これは、データ・キー=値&キー=値...構造を使用して直接得られます。
取得要求メソッドが適用されません。
プロパティ:
必要は:リクエストボディを持っている必要があります。デフォルト値は次のとおりです。真。値がtrueの場合、リクエストメソッドのエラーを取得します。値が場合は
falseで、リクエストがnullを取得。

使用方法:
ここに画像を挿入説明
印刷コンテンツのような要求のポストフォームの送信、ある
ユーザ名=%E5%98%BB %E5%98%BB&年齢= 12
ここでの受信は、今私が解決する方法を知っているが、このコメントはありません、文字列の文字化けになりますJSONオブジェクトは、通常、それは多くの情報へのアクセスが文字化けJSONケースを受け取るために使用され、文字列が行われていない受信、フロントデスクの受付を超える投稿するために使用され、解決策は、上記の方法は=「text / htmlの生成追加することです;のcharset = UTF-8」は、状況下のテキスト/ HTMLの前にアプリケーション/ JSONまたは他のです。

@PathVariable

効果:
URLプレースホルダを結合するため。たとえば、次の要求URL /削除/ {ID}は、{ID}は、URLプレースホルダです。
URL支援プレースホルダはspring3.0後に追加されます。Springmvcサポートは、残りのスタイルURLの重要なサインです。
属性:
値:プレースホルダ名のURLを指定します。
必要:プレースホルダを提供しなければなりません。

ここに画像を挿入説明
そして、対応する注釈にプレースホルダ値。

@RequestHeader

場所:
パラメータ以前、取得したパラメータの値に渡される
アクション:
メッセージ・ヘッダーを取得するための要求。
プロパティ:
値:メッセージのヘッダー名を提供する
必要:それは、このヘッダーが必要です
注意:
一般的に実際の開発では使用しないでください。

@CookieValue

場所:
パラメータ以前、取得したパラメータの値が渡さ
効果:
メソッドに渡された値は、クッキーのパラメータコントローラの名前を指定します。
プロパティ:
値:指定クッキーの名前。
必要:あなたはこのクッキーを持っている必要があります。

@ModelAttribute

役割:
このアノテーションは後から追加SpringMVC4.3新バージョンです。メソッドやパラメータを変更するために使用することができます。
この方法では、現在の方法を示すに表示され、コントローラのメソッドの前に実行され、それが実行します。方法を変更することができる値を返さない、とすることができる
特定の方法は戻り値を持って変更します。
パラメータに表示されますが、パラメータの割り当てに指定されたデータを取得します。
属性:
値:鍵データを取得するため。POJOは、キー属性名は、キーマップの構造とすることができることができます。
シナリオ:
フォームがデータを提出しているフィールドは、データベースが元のデータオブジェクトを使用してデータを提出しないことを確実にするために、完全なエンティティクラスのデータ、ではありません。
たとえば、次のように
フォームの修正のみ名前と年齢、値がないため、アドレスに更新時間、にnullに設定されている場合、あなたは、ユーザー情報を変更するのであれば、我々は最初の意志の名前、年齢、住所、:ユーザデータベースには3つのフィールドがありユーザーデータベースの元の値は、元のデータが保存されるように、更新された時間に基づいて実行をカバーし、手入れの行き届きました。

戻り値:
ここに画像を挿入説明

@ModelAttributeは、この方法は、まず、以前に指定したユーザー名と年齢ので、他の方法で実行されます注釈を付けた後は、その後、testUpdateメソッドを呼び出してnullにのみ、年齢がされていないセットでフロントデスク、「ヒッヒッヒ」の場合は名称を提出し、一つの問題:ユーザーは、どこへ行くに復帰し、次のメソッドをオブジェクト?A:コンテナの内部に戻り、バック。この場合、ユーザオブジェクトコンテナのうち、ユーザパラメータとして、フォームが送信され、パッケージ内部の受信したパラメータおよびユーザクラス、上のユーザー名を要求することによって、これは元の「ジョン・ドウ」上書き、可変であろうそれによって、元のデータ操作を維持実現する、新しい「ヒッヒッヒ」となっています。

なし戻り値:
マップが、マップにユーザオブジェクトは、更新の実装では、容器をロードし、そして、対応するターゲットコンテナを得るためにパラメータに割り当てられ@ModelAttribute鍵を、記載、及び、パラメータの受信に応じて再送信カバレッジを達成するために、ユーザーオブジェクトにパッケージ化します。
ここに画像を挿入説明

@SessionAttribute

処置:
複数のコントローラ間でメソッドを共有を実行するためのパラメータ。
プロパティ:
値:プロパティは、預金の名前を指定するために
格納されるデータの種類を指定するために使用される:タイプ。

@SessionAttributes内部、およびだけではなく、ユーザ名・パスワードを提供した場合、パスワードは、パスワードの値を取得するために、同じ方法でセッションドメインtestGetに格納することはできませんnullです。
ここに画像を挿入説明
EL式の値のペアそこを通ってフィールド内のセッションを印刷するsuccess.jspページ
ここに画像を挿入説明
とJSPページはEL式を無視するように設定することはできません
ここに画像を挿入説明

公開された31元の記事 ウォンの賞賛0 ビュー1218

おすすめ

転載: blog.csdn.net/SixthMagnitude/article/details/104267350