SpringMVC-请求参数的绑定和常用注解

基本类型和String类型作为参数

<a href = "test/testString?userName=aa">测试字符串</a>

@Controller
@RequestMapping("/test")
public class test{
    @RequestMapping("testString")
    public String testString(String userName){
        System.out.println("执行了");
        return "success";
    }
}

POJO类型作为参数

<form action="/test/testUser" method="post">
    姓名:<input type="text" name="userName"><br>
    年龄:<input type="text" name="age"><br>
    生日:<input type="text" name="date"><br>
    <input type="submit" value="提交">
</form>

@Data
public class User{
    private String userName;
    private String age;
    private String date;
}

@Controller
@RequestMapping("/test")
public class test{
    
    @RequestMapping("/testUser")
    public String testUser(User user){
        System.out.println(user.toString());
        return "success";
    }
}

POJO类中包含集合类型参数

<form action="/test/testUserMap" method="post">
    姓名:<input type="text" name="userName"><br>
    年龄:<input type="text" name="age"><br>
    日期:<input type="text" name="date"> <br>
    账户4名称:<input type="text" name="accountMap['two'].name" ><br/>
    账户1名称:<input type="text" name="accounts[0].name" ><br/>
    <input type="submit" value="提交"/>
</form>

@Controller
@RequestMapping("/test")
public class test{
    
    @RequestMapping("/testUserMap")
    public String testUserMap(User user){
        System.out.println(user);
        return "success";
    }
}

使用ServletAPI对象作为方法参数

<a href="test/testServletAPI">测试原生Servlet</a>

@Controller
@RequestMapping("test")
public class test{

    @RequestMapping("testServletAPI")
    public String testServletAPI(HttpServletRequest request,HttpServletResponse response,HttpSession session){
        System.out.println(request);
         System.out.println(response);
        System.out.println(session);
    }
}

常用注解

@RequestParam

<a href="test/testRequestParam?name=test">测试请求参数绑定</a>


@Controller
@RequestMapping("/test")
public class test{
    @RequestMapping("/testRequestParam")
    public String testRequestParam(@RequestParam(value="name") String userName){
      System.out.println(userName);
        return "success";  
    }
}

@RequestBody

<form action="test/testRequestBody" method="post">
    姓名:<input type="text" name="userName"><br>
    年龄:<input type="text" name="age"><br>
    日期:<input type="text" name="date"><br>
    <input type="submit" value="提交"/>
</form>

@Controller
@RequestMapping("/test")
public class test{
    @RequestMapping("testRequestBody")
    public String testRquestBody(@RequestBody String body){
        System.out.println(body);
        return "success";
    }

}

@PathVaribale 适用于restful风格的,含义就是路径是一样的,根据入参类型不同,请求到不到接口上

<a href="/test/testPathVaribale/100">测试请求路径</a>


@Controller
@RequestMapping("test")
public class test{
    @RequestMapping("testPathVaribale/{id}")
    public String testParhVaribale(@PathVaribale("id") Integer id){
        System.out.println("id"+id);
        return "success";
    }

}

 

@RequestHeader

<a href="test/testRequestHeader">测试请求Header</a>

@Controller
@RequestMapping("test")
public class test{
    @RequestMapping("testRequestHeader")
    public String testRequestHeader(@RequestHeader(value="Accept-Language" String RequestHeader)){
    System.out.printlin("Accept-Language"+Accept-Language);
    return "success";
    }

}

@CookieValue

<a href="test/testCookieValue">测试cookie</a>

@Controller
@RequestMapping("test")
public class test{
    @RequestMapping("testCookieValue")
    public String testCookieValue(@CookieValue(value="JSESSIONID" String CookieValue)){
    System.out.printlin("CookieValue"+CookieValue);
    return "success";
    }

}

@ModelAttribute

@SessionAttribute   这个注解必须加载类上面

<a href="test/testSaveSession">保存到session域中</a>

@Controller
@RequestMapping("test")
@SessionAttribuate(value={"userName","age"})
public class test{

    @RequestMapping("testSaveSession")
    public String testSaveSession(Model model){
        System.our.println("像session域中保存数据");
        model.addAttribute("userName","hh");
        model.addAttribute("age","20");
         return "success";
    }
}
<a href="test/testFindSession">测试从session中获取</a>

@Controller
@RequestMapping("test")
@SessionAttribute(value={"userName","age"})
public class test{
    @RequestMapping("testFindSession")
    public String testFindSession(ModelMap modelMap){
       String userName =(String)modelMap.get("userName");
        String age =(String)modelMap.get("age");
        return "success";
    }
}
<a href="test/testDeleteSession">测试从session域中删除</a>

@Controller
@RequestMapping("test")
@SessionAttribute(value={"userName","age"})
public class test{
    @RequestMapping("testDeleteSession")
    public String testDeleteSession(SessionStatus sessionStatus){
        sessionStatus.setComplete();
        System.out.println("清除session");
    }
    
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NeilNiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值