Spring MVC@RequestMapping注記
概要
@RequestMapping注記は、要求アドレスマッピングを処理するための注記であり、サーブレットにおけるwebに相当する.xmlで構成されたマッピングは一貫して機能し、コントローラのクラス定義およびメソッド定義に寸法を付けることができます.
クラスでは、クラス内のすべての応答要求を表す方法が親パスとして使用されます.
DispatcherServiceletは、要求をキャプチャした後、コントローラ上の@RequestMappingが提供するマッピング情報により、要求に対応する処理方法を決定する.
@RequestMapping AntスタイルURL対応
?:ファイル名に一致する文字
*:ファイル名に一致する任意の文字
**:複数パスの一致
例:
注意:index.jspのaラベルのmvcaaは任意に書かれており、マッピング方法の*番号です.
RequestMapping注記の6つのプロパティ
注:複数のプロパティを同時に定義すると、それらの間には関連があり、複数の条件を組み合わせてリクエストマッピングをより正確にすることができます.
1、 value, method
例: value:要求された実際のアドレスを指定し、指定されたアドレスはURI Templateモードであってもよい(後述).valueのuri値は、通常の具体的な値、ある変数を含む値(URI Template Patterns with Path Variables)、正規表現を含む値(URI Template Patterns with Regular Expressions)の3種類に指定できます. method:要求のmethodタイプ、GET、POST、PUT、DELETEなどを指定します.
2、 consumes,produces consumes:アプリケーション/json、text/htmlなどの処理要求のコミット・コンテンツ・タイプを指定します. produces:requestリクエストヘッダの(Accept)タイプに指定されたタイプが含まれている場合にのみ返されるコンテンツタイプを指定します.
3、 params,headers params:requestにメソッドを処理するためにいくつかのパラメータ値が含まれている必要があることを指定します. headers:リクエストを処理するには、requestに指定したヘッダ値が含まれる必要があることを指定します.
例:
index.jsp
success.jsp
dispatcher-servlet.xml
クラス定義
WEBアプリケーションのルートディレクトリに対して、初歩的な要求マッピング情報を提供する.
メソッドで定義
クラス定義のURLに対して、クラス定義に@RequestMappingがマークされていない場合、メソッドにマークされているURLはWEBアプリケーションのルートディレクトリに対して、さらに細分化されたマッピング情報を提供します.
@RequestMapping注記は、要求アドレスマッピングを処理するための注記であり、サーブレットにおけるwebに相当する.xmlで構成されたマッピングは一貫して機能し、コントローラのクラス定義およびメソッド定義に寸法を付けることができます.
クラスでは、クラス内のすべての応答要求を表す方法が親パスとして使用されます.
DispatcherServiceletは、要求をキャプチャした後、コントローラ上の@RequestMappingが提供するマッピング情報により、要求に対応する処理方法を決定する.
@RequestMapping AntスタイルURL対応
?:ファイル名に一致する文字
*:ファイル名に一致する任意の文字
**:複数パスの一致
例:
package com.helloworld;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/helloworld_mvc")
public class HelloWorld {
@RequestMapping("/*/testAnt")
public String testAnt(){
return "success";
}
}
注意:index.jspのaラベルのmvcaaは任意に書かれており、マッピング方法の*番号です.
$Title$
antテスト
RequestMapping注記の6つのプロパティ
注:複数のプロパティを同時に定義すると、それらの間には関連があり、複数の条件を組み合わせてリクエストマッピングをより正確にすることができます.
1、 value, method
例:
$Title$
package com.helloworld;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/helloworld_mvc")
public class HelloWorld {
@RequestMapping(value = "/testMethod", method = RequestMethod.POST)
public String testMethod(){
return "success";
}
}
2、 consumes,produces
3、 params,headers
$Title$
Paramsテスト
package com.helloworld;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/helloworld_mvc")
public class HelloWorld {
@RequestMapping(value = "testParmter", params = {"username","age!=10"})
public String testParams(){
return "success";
}
}
例:
index.jsp
$Title$
メソッド @RequestMapping
クラス @RequestMapping
success.jsp
Title
success
dispatcher-servlet.xml
クラス定義
WEBアプリケーションのルートディレクトリに対して、初歩的な要求マッピング情報を提供する.
package com.helloworld;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/helloworld_mvc")
public class HelloWorld {
@RequestMapping("/hello")
public String hello(){
System.out.println(" ");
return "success";
}
}
メソッドで定義
クラス定義のURLに対して、クラス定義に@RequestMappingがマークされていない場合、メソッドにマークされているURLはWEBアプリケーションのルートディレクトリに対して、さらに細分化されたマッピング情報を提供します.
package com.helloworld;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloWorld2 {
@RequestMapping("/hello2")
public String hello(){
return "success";
}
}