1、RequestMapping
1.1役割
- アクションは、アクセスディレクトリに基づいて、第1段階を示しています。
- アクションメソッド上のディレクトリへのアクセスの第二のレベルを表しています。
注:パスは、書き込み/プレゼンテーションアプリケーションは、rootで起動することはできません。
1.2プロパティ
- 要求パス指定したURL:パス
- 値:value属性とパス属性が同じです
- 方法:方法の特定の要求
- params:指定規制要求条件パラメータ
- 要求ヘッダー要求て送信が含まれていなければならない:ヘッダー
1.3、RequestMapping使用
/**
* RequestMapping注解
* @return
*/
@RequestMapping(value = "/testRequestMapping",params = {"username=heihei"},headers = {"Accept"})
public String testRequestMapping() {
System.out.println("测试RequestMapping注解...");
return "success";
}
2、RequestParam
2.1役割
- パラメータは、一般的に解決し、リクエストパラメータ名の矛盾に使用割り当てられたパラメータ、パラメータ名のコントローラに転送要求の名前を指定します。
2.2プロパティ
- 値:リクエストパラメータ名
- equired:このパラメータは提供されなければならないかどうか、デフォルト値がtrueでリクエストパラメータを、それが提供されなければなりません
2.3、RequestParamの使用注釈
/**
* RequestParam注解:
* @param username
* @return
*/
@RequestMapping("/testRequestParam")
public String testRequestParam(@RequestParam(name="name") String username){
System.out.println(username);
return "success";
}
3、RequestBody
3.1役割
- そのコンテンツを取得するための要求(注:getメソッドはできません)。
- JSON JavaBeanオブジェクトに文字列を変換します。
3.2プロパティ
- equired:それは、リクエストボディを持っていることが必要であり、デフォルト値はtrueです
3.3、RequestBody使用注釈
/**
* RequestBody注解:获取到请求体的内容
* @param body
* @return
*/
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody String body){
System.out.println(body);//username=zhangsan&password=123
return "success";
}
4、PathVariable
4.1役割
- バインディングは、URLプレースホルダを持っています。
4.2プロパティ
- 値:指定名のURLのプレースホルダ
4.3、PathVariable使用注釈
/**
* PathVariable注解:
* @return
*/
@RequestMapping(value="/testPathVariable/{sid}")
public String testPathVariable(@PathVariable(name="sid") String id){
System.out.println(id);
return "success";
}
5、RequestHeader
5.1役割
- 要求ヘッダーで指定された値を取得します。
5.2プロパティ
- 値:要求ヘッダ名
5.3、RequestHeader使用注釈
/**
* RequestHeader注解:获取请求头的值
* @param header
* @param request
* @param response
* @return
* @throws IOException
*/
@RequestMapping(value="/testRequestHeader")
public String testRequestHeader(@RequestHeader(value="Accept") String header, HttpServletRequest request, HttpServletResponse response) throws IOException {
System.out.println(header);
return "success";
// response.sendRedirect(request.getContextPath()+"/anno/testCookieValue");
//return "redirect:/param.jsp";
}
6、Cookieの値
6.1役割
- クッキー名の値を取得します。
6.2プロパティ
- 値:クッキーの名前
6.3、にcookievalueの使用注釈
/**
* CookieValue注解:获取Cookie的值
* @param cookieValue
* @return
*/
@RequestMapping(value="/testCookieValue")
public String testCookieValue(@CookieValue(value="JSESSIONID") String cookieValue){
System.out.println(cookieValue);
return "success";
}
7、ModelAttribute
7.1役割
- 現在のフロントラインのアプローチは、コントローラ内のメソッドを使用している方法に作用します。
- パラメータに作用し、パラメータの割り当てに指定されたデータを取得します。
7.2、ModelAttribute使用
/**
* ModelAttribute注解:作用在方法时,表示当前方法会在控制器方法执行前执行。
* @param username
* @param map
*/
@ModelAttribute
public void showUser(String username, Map<String,UserInfo> map){
UserInfo userInfo = new UserInfo();
userInfo.setUsername(username);
userInfo.setPassword("123");
userInfo.setDate(new Date());
map.put("userInfo",userInfo);
}
8、SessionAttribute
8.1役割
- 複数の間の共有の制御方法を実行するためのパラメータ
8.2プロパティ
- 値:指定するプロパティの名前に
8.3、SessionAttributeの使用注釈
package com.wedu.springmvc.web;
import com.wedu.springmvc.domain.UserInfo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.support.SessionStatus;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
/**
* springmvc常用注解的使用
*/
@Controller
@RequestMapping("/annotation")
@SessionAttributes(value = {"msg"})
public class AnnoController {
/**
* SessionAttributes注解:用于多次执行控制器方法间的参数共享
* 向session中存储数据
* @return
*/
@RequestMapping(value="/testSessionAttributes")
public String testSessionAttributes(Model model){
// 底层会存储到request域对象中
model.addAttribute("msg","测试OK");
return "success";
}
/**
* 从session中获取值
* @param modelMap
* @return
*/
@RequestMapping(value="/getSessionAttributes")
public String getSessionAttributes(ModelMap modelMap){
String msg = (String) modelMap.get("msg");
System.out.println(msg);
return "success";
}
/**
* 将session中的值清除
* @param status
* @return
*/
@RequestMapping(value="/delSessionAttributes")
public String delSessionAttributes(SessionStatus status){
System.out.println("将session中的值清除...");
status.setComplete();
return "success";
}
}