Java笔记--SpringMVC--@RequestMapping
来源:互联网 发布:java实现接口的方法 编辑:程序博客网 时间:2024/05/18 20:32
在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.
- Java笔记--SpringMVC--@RequestMapping
- SpringMVC学习笔记-@RequestMapping
- springmvc笔记之 -- @Controller和@RequestMapping注解
- 【笔记1】SpringMvc常用注解类-RequestMapping
- springMVC @RequestMapping
- @RequestMapping-------springMVC
- SpringMVC requestMapping
- SpringMVC --@RequestMapping
- springmvc学习笔记(2)——RequestMapping
- SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
- SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
- (4) SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
- SpringMVC学习笔记(四):地址映射RequestMapping
- SpringMVC学习笔记(一)-概述、HelloWorld、@RequestMapping、@RequestParam
- SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
- SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
- SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
- java web学习笔记-@Controller @RequestMapping注解
- IIS发布,虚拟目录的使用
- 【用Cocos Creator给暗恋的女生写一个游戏(0)】——本故事纯属虚构
- java虚拟机——对象的创建
- 华为计算字符个数写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
- Div+Css布局相关的属性
- Java笔记--SpringMVC--@RequestMapping
- 怎么做一个MOBA游戏(武器与技能)?
- st算法-延绵的山峰
- UVA122 Trees on the level
- RatingBar的实现
- juery 自定义方法及其调用方式
- spring之旅
- Ubuntu 下安装有道词典
- 适配器模式