SpringMVC(三):springMVC的常用注解

1、RequestMapping

1.1、作用

  • 作用在类上表示第一级的访问目录;
  • 作用在方法上表示第二级的访问目录。

注意:路径可以不编写 / 表示应用的根目录开始

1.2、属性

  • path:指定请求路径的url
  • value:value属性和path属性是一样的
  • method:指定该方法的请求方式
  • params:指定限制请求参数的条件
  • headers:发送的请求中必须包含的请求头

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、属性

  • value:请求参数中的名称
  • 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、作用

扫描二维码关注公众号,回复: 8783504 查看本文章
  • 用于获取请求体的内容(注意: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、属性

  • value:指定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、属性

  • value:请求头的名称

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、CookieValue

6.1、作用

  • 用于获取指定cookie的名称的值

6.2、属性

  • value:cookie的名称

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、属性

  • value:指定存入属性的名称

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";
    }

}
发布了134 篇原创文章 · 获赞 10 · 访问量 7344

猜你喜欢

转载自blog.csdn.net/yu1755128147/article/details/103898890