We can get the values of a submitted form in a jsp page in controller using request.getParamenter(xxxx)
,by using commandName or by using hidden fields.
is there any other way to get values from a form of jsp in a controller?
We can get the values of a submitted form in a jsp page in controller using request.getParamenter(xxxx)
,by using commandName or by using hidden fields.
is there any other way to get values from a form of jsp in a controller?
Springは、Javaの実際のオブジェクトへのリクエストでパラメータをデータバインディングするいくつかの方法を提供します。ほとんどのデータバインディングは、注釈付きメソッドを使用するか、メソッド内のパラメーターに注釈を付けることによって指定されます。
次の形式を考えてみましょう。
<form>
<input name="firstName"/>
<input name="lastName"/>
<input name="age"/>
</form>
Springコントローラーでは、要求パラメーターをいくつかの方法で取得できます。
@RequestParam ドキュメント
@RequestMapping("/someurl)
public String processForm(@RequestParam("firstName") String firstName,
@RequestParam("lastName") String lastName,
@RequestParam("age") String int,) {
.....
}
リクエストパラメータがクラスでモデル化されている場合は、Person.java
別の手法を使用できます@ModelAttribute
。
Person.java
public class Person(){
String firstName;
String lastName;
int age;
//Constructors and Accessors implied.
}
@ModelAttribute ドキュメント
@RequestMapping(value="/someUrl")
public String processSubmit(@ModelAttribute Person person) {
//person parameter will be bound to request parameters using field/param name matching.
}
これらは、Springがデータバインディングを提供するために使用する最も一般的に使用される2つの方法です。SpringMVCドキュメントで他の人について読んでください。
public String myMethod(@RequestParam("myParamOne") String myParamOne) {
//do stuff
}
注釈によってフィールドをコントローラ メソッドに直接マップする@RequestParam
か、.xml を使用してオブジェクトを直接バインドできます@ModelAttribute
。
public ModelAndView method(@RequestParam(required = true, value = "id") Long id) {
}
public ModelAndView method(@ModelAttribute("pojo") POJO pojo, BindingResult results) {
}