spring_MVC_02値転送
5548 ワード
Spring MVCを使ってページ提出データの取得と返却を実現します.
@Request Paramを使って、ページ要求がパラメータに入る必要があることを示します.
正しいアクセス:
http://localhost:8080/spring_mvc_01/ハロー?id=1
デフォルトのパラメータを設定
転送パラメータがない場合は、エラーなくデフォルトの値を使用します.
http://localhost:8080/spring_mvc_01/ハロー
結果:100
パラメータが入ってきたら、転送のパラメータを使ってデフォルトの値が無効になります.
http://localhost:8080/spring_mvc_01/ハロー?id=9
結果:9
ページからのパラメータ名をカスタマイズします.
http://localhost:8080/spring_mvc_01/hello?userId=1
結果:1
クライアントにデータを返す
MAPを通してデータを転送します.方法のパラメータの中でMapを定義してからMapの中にput値を設定すれば、ページはkeyを通して取れます.
NBすぎます
要求:http://localhost:8080/spring_mvc_01/say?name=zhangさん
バックグラウンドで取得したデータ:name=zhangsan
ページで取得したデータ:spring mvc is very good!
Modelを使ってデータを転送する(推奨)
ページに返された結果:
struts 2 is bad
so easy
requestオブジェクト、sessionオブジェクトなどを取得します.
@Request Paramを使って、ページ要求がパラメータに入る必要があることを示します.
package com.hqh.student.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
//
@Controller
public class FirstController {
//
@RequestMapping(value={"/hello"})
public String hello(@RequestParam(required=true) int id) {
System.out.println("FirstController.hello()");
return "hello";
}
}
要求されたURLがパラメータに入っていない場合、エラーが発生します.要求されたパラメータ値が伝達されていません.正しいアクセス:
http://localhost:8080/spring_mvc_01/ハロー?id=1
デフォルトのパラメータを設定
package com.hqh.student.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
//
@Controller
public class FirstController {
//
@RequestMapping(value={"/hello"})
public String hello(@RequestParam(required=true,defaultValue="100") int id) {
System.out.println(id);
return "hello";
}
}
転送パラメータがない場合は、エラーなくデフォルトの値を使用します.
http://localhost:8080/spring_mvc_01/ハロー
結果:100
パラメータが入ってきたら、転送のパラメータを使ってデフォルトの値が無効になります.
http://localhost:8080/spring_mvc_01/ハロー?id=9
結果:9
ページからのパラメータ名をカスタマイズします.
package com.hqh.student.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
//
@Controller
public class FirstController {
//
@RequestMapping(value={"/hello"})
public String hello(@RequestParam(value="userId") int id) {
System.out.println(id);
return "hello";
}
}
ページ転送を指定するパラメータ名はuserIdで、パラメータ名がuserIdの場合にのみ正しくアクセスできます.http://localhost:8080/spring_mvc_01/hello?userId=1
結果:1
クライアントにデータを返す
MAPを通してデータを転送します.方法のパラメータの中でMapを定義してからMapの中にput値を設定すれば、ページはkeyを通して取れます.
NBすぎます
@RequestMapping(value={"/say"})
public String say(String name,Map<String,Object> retMap) {
System.out.println("name="+name);
retMap.put("say", "spring mvc is very good!");
return "say";
}
WEB-INF/jsp/say.js<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>${say}</h1>
</body>
</html>
要求:http://localhost:8080/spring_mvc_01/say?name=zhangさん
バックグラウンドで取得したデータ:name=zhangsan
ページで取得したデータ:spring mvc is very good!
Modelを使ってデータを転送する(推奨)
@RequestMapping(value="/shout")
public String shout(Model model) {
// key,key Object. , String, key string
model.addAttribute("struts2 is bad!");
// key,value
model.addAttribute("spring_mvc", "so easy!");
return "shout";
}
WEB-INF/jsp/shot.jsp<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>${string}</h1>
<h1>${spring_mvc}</h1>
</body>
</html>
URL:http://localhost:8080/spring_mvc_01/ショップページに返された結果:
struts 2 is bad
so easy
requestオブジェクト、sessionオブジェクトなどを取得します.
// request
@RequestMapping(value={"/execute"})
public String execute(HttpServletRequest request) {
//spring request
HttpSession session = request.getSession();
String uri = request.getRequestURI();
System.out.println(uri);
return "shout";
}