关闭

Java笔记--SpringMVC--@RequestMapping

标签: stringjavaspring mvc注解
277人阅读 评论(0) 收藏 举报
分类:

在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter(“name”),另外一种是用注解@RequestParam直接获取。这里主要讲这个注解

一、基本使用,获取提交的参数
后端代码:
Java代码 收藏代码
@RequestMapping(“/delUser.action”)
public String delUser(@RequestParam(value=”id”,required=true)int ids){
System.out.println(ids);
// System.out.println(“数组长度:”+ids.length);
// for (int i : ids) {
// System.out.println(“删除ID:”+i);
// userMap.remove(i);
// }
return “redirect:/toUserList.action”;
}

前端代码:
Html代码 收藏代码

可以看到spring会自动根据name=”id”参数名字封装注入到(@RequestParam(value=”id”,required=true),两个id名字一致,可以将前端的id传给后台的ids

二、各种异常情况处理
1、可以对传入参数指定参数名
Java代码 收藏代码
//javaBean中的id为Integer类型
@RequestParam Integer ids 不推荐这样写(注意,最后一个例子没有提供清晰的参数名。当且仅当代码带调试(Debug)符号编译时,结果会提取名为“ids”的参数,否则,将抛出IllegalStateException异常,因为当前的信息不足以从请求中提取参数。由于这个原因,在编码时最好显式的指定参数名。)
// 下面的对传入参数指定为aa,如果前端不传aa参数名(前端是id3),会报错
@RequestParam(value=”id”) Integer ids

错误信息:
HTTP Status 400 - Required String parameter ‘id’ is not present

2、可以通过required=false或者true(不写默认就是true)来要求@RequestParam配置的前端参数是否一定要传
Java代码 收藏代码
//前端是name=”id3”
// required=false表示不传的话,会给参数赋值为null,required=true就是必须要有(不传入就会出现异常1中情况)
@RequestMapping(“/delUser.action”)
public String delUser(@RequestParam(value=”id”,required=false)Integer ids)
System.out.println(ids);//这时输出为null

3、如果用@RequestMapping注解的参数是int基本类型,但是required=false,这时如果不传参数值会报错,因为不传值,会赋值为null给int,这个不可以
错误:HTTP Status 500 - Request processing failed; nested exception is java.lang.IllegalStateException: Optional int parameter ‘id’ is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.
Java代码 收藏代码
@RequestMapping(“/delUser.action”)
public String delUser(@RequestParam(value=”id”,required=false)int ids){
System.out.println(ids);
return “redirect:/toUserList.action”;
}

解决方法:
“Consider declaring it as object wrapper for the corresponding primitive type.”建议使用包装类型代替基本类型,如使用“Integer”代替“int”,这是会默认赋值null给ids.

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12133次
    • 积分:257
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:7条
    文章分类
    最新评论