Spring mvcシリーズ5のデータ充填と戻り


この文章の説明は全部注釈に基づいています.spring mvc注釈の紹介は前の文章を見てもいいです.Spring mvcシリーズ四の注釈紹介及びspring mvcの他の運用は私のspring mvcシリーズの文章を見てもいいです.
spring mvcについて説明します.@Request Paramと@PathVarableはspring mvcのデータを使って充填します.フォームからデータを送ると、対応するコントローラの処理方法パラメータに同じ名前と種類を記入してもいいです.フォームのパラメータ名と方法パラメータ名が異なる場合は@Request PathVare.で注釈してもいいです.
次の例を見ます.
まずフォームを作成して、ページdata.jspを提出します.
 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>    </title>
</head>
<body>
	<form action="user/addUser" method="post">
		   :<input type="text" name="name" /><br/>
		  :<input type="text" name="age" />
		<input type="submit" value="  " />
	</form>
</body>
</html>
 
 
 
対応するコントローラを作成します.ここでフォームをuser/addUserに提出します.それに対応する方法を書きます.
 
package gd.hz.springmvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller("userController")
@RequestMapping("user")
public class UserController {
	
	@RequestMapping(value="addUser" , method=RequestMethod.POST)
	public ModelAndView addUser(String name , String age)
	{
		System.out.println("name--->" + name + "  --->" + age) ;
		return new ModelAndView("dataSuccess");
	}
}
 フォームの名前をnameとageといいます.コントローラのaddUserメソッドのパラメータのnameとageに対応しています.springによって自動的にデータを充填してくれます.パラメータ名がフォームの名前と違ったら@Request Paramで注釈ができます.
 
もちろん、データをオブジェクトとして塗りつぶすこともできます.
Userクラスを作成し、対応するget setメソッドを生成します.属性名はフォームの名前に対応します.
package gd.hz.springmvc.model;

public class User {
	private String name ;
	private int age ;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}
 Controllerにはこう書かれています.
package gd.hz.springmvc.controller;

import gd.hz.springmvc.model.User;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller("userController")
@RequestMapping("user")
public class UserController {
	
	//        
	@RequestMapping(value="addUser2" , method=RequestMethod.POST)
	public ModelAndView addUser2(User user)
	{
		System.out.println("name--->" + user.getName() + "  --->" + user.getAge()) ;
		return new ModelAndView("dataSuccess");
	}
}
 
得られたデータをviewに返す:
最もよく使われているのはModelAndViewを使用しています.多くの重負荷の構造方法があり、文字列の種類に戻すことができます.MapタイプとObjectタイプに戻すこともできます.詳しい使い方はSpringのAPIを見ることができます.以下にいくつかの例を挙げます.
@RequestMapping(value="addUser2" , method=RequestMethod.POST)
	public ModelAndView addUser2(User user)
	{
		System.out.println("name--->" + user.getName() + "  --->" + user.getAge()) ;
		return new ModelAndView("dataSuccess", "user" , user);
	}
 
@RequestMapping(value="addUser2" , method=RequestMethod.POST)
	public ModelAndView addUser2(User user)
	{
		System.out.println("name--->" + user.getName() + "  --->" + user.getAge()) ;
		ModelAndView model = new ModelAndView("dataSuccess");
		model.addObject("user", user);
		return model;
	}
 
@RequestMapping(value="addUser2" , method=RequestMethod.POST)
	public ModelAndView addUser2(User user)
	{
		ModelAndView model = new ModelAndView("dataSuccess");
		Map<String , User> users = new HashMap<String , User>();
		model.addObject(users);
		return model;
	}
 ビューインターフェースで私たちはjstlでデータを取得できます.
 例えば、前の第一の方法のuser(ここのuserは私たちが戻るときに定義される名前です)は、$