博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring MVC——参数装填方式
阅读量:6627 次
发布时间:2019-06-25

本文共 4968 字,大约阅读时间需要 16 分钟。

1. 默认支持类型HttpServletRequest、HttpServletResponse、HttpSession、Model、ModelMap

测试路径:%项目根%/getAllEmp.action?empno=7788

1 @RequestMapping(value="/getAllEmp") 2     public String getAllEmp(HttpServletRequest request,HttpServletResponse response,HttpSession session,Model model,ModelMap modelMap) 3     { 4         System.out.println("request:" + request.getParameter("empno")); 5          6         System.out.println("response:" + response.getLocale().getCountry() +"-" + response.getLocale().getLanguage()); 7          8         System.out.println("session:" + session.getId()); 9         10         List
emps = empService.getEmp();11 12 model.addAttribute("emps", emps);13 14 modelMap.addAttribute("message", "查询雇员信息成功");15 16 return "empQuery";//实际解析名称: 前缀"/" + main + 后缀".jsp" /main.jsp17 }

 

2. 简单类型:整型,字符串,单精度/双精度,boolean类型[注意:这种方式只能用于get请求方式,如果为post请求,必须用request获取到参数]

注意:1. 默认情况下,实际参数名称与形式参数名称一致
   2. 基本数据类型,建议使用其包装类型Integer、Boolean、Double、Float等
测试路径:%项目根%/getEmpByEmpno.action?index=${status.index+1}

1 @RequestMapping("/getEmpByEmpno") 2     public String getEmpByEmpno(Model model,Integer index) 3     { 4         System.out.println("getEmpByEmpno:index参数值---" + index); 5          6         Emp emp = empService.getEmpByEmpno(index); 7          8         model.addAttribute("emp", emp); 9         10         return "empUpdate";11     }

 

2.1 简单类型:整型,字符串,单精度/双精度,boolean类型

注意: 1. 默认情况下,实际参数名称与形式参数名称一致
    2. 基本数据类型,建议使用其包装类型Integer、Boolean、Double、Float等
          3. 当实际参数名称与形式参数名称不一致时,使用注解@RequestParam标明实际参数名称
          value:指定的实际参数名称
          required:true 参数必须带
          defaultValue:参数默认值

测试路径:
%项目根%/getEmpByEmpno_2.action?index=${status.index+1}
%项目根%/getEmpByEmpno_2.action

1 @RequestMapping("/getEmpByEmpno_2") 2     public String getEmpByEmpno_2(Model model,@RequestParam(value="index",required=true,defaultValue="0")Integer index2) 3     { 4         System.out.println("getEmpByEmpno:index2参数值---" + index2); 5          6         Emp emp = empService.getEmpByEmpno(index2); 7          8         model.addAttribute("emp", emp); 9         10         return "empUpdate";11     }

 

3.简单的POJO(plain old java projects)对象

注意:提交的参数名称必须与javaBean对象的属性名称一致
例如:<input type="text" name="empno" value="${emp.empno}">中的name属性值必须与参数emp对象中的empno属性名一致
4.包装的POJO对象: dept.dname dept.deptno
5.自定义参数绑定

(1) 定义类,并实现 org.springframework.core.convert.converter.Converter接口,同时重写convert()方法

1 public class CustomerDateConverter implements Converter
{ 2 3 @Override 4 public Date convert(String param) { 5 6 //将字符串类型转换为日期类型 7 8 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 9 10 try {11 12 return sdf.parse(param);13 14 } catch (ParseException e) {15 e.printStackTrace();16 }17 18 return null;19 }

注意:泛型中,第一个为传入参数类型,第二个为传出的指定格式的参数类型

(2) 配置自定义参数转换器

<!-- 自定参数绑定组件 -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<!-- 配置转换器 -->
<property name="converters">
<list>
<!-- 日期类型转换器 -->
<bean class="com.neuedu.converter.CustomerDateConverter"></bean>
</list>
</property>
</bean>

(3)将自定义参数转换器注入到适配器

<!-- 处理器适配器、处理器映射器 -->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>

 

6. 集合类 List

注意:形式参数类型为引用类型Emp
实际参数类型(List)传入时,name属性值subEmps[${status.index}].empno必须与Emp对象中的属性值subEmps一致
<input type="text" name="subEmps[${status.index}].empno" value="${emp.empno}">

1 @RequestMapping("/getSubEmps") 2     public String getSubEmps(Model model,Integer index) 3     { 4         Emp emp = empService.getEmpByEmpno(index); 5          6         List
subEmpList = emp.getSubEmps(); 7 8 model.addAttribute("subEmpList", subEmpList); 9 10 return "subEmpQuery";11 }12 @RequestMapping("/updateSubEmp")13 public String updateSubEmp(Emp emp)14 {15 System.out.println("updateSubEmp:"+emp.getSubEmps());16 17 return "success";18 19 }

 

6. 集合类  数组

1 @RequestMapping("/deleteEmps")2     public String deleteEmps(Integer[] indexs)3     {4         //delete from emp where empno in(1, 2, 3, 5);5         System.out.println("deleteEmps:" +Arrays.toString(indexs));//[1, 2, 3, 5]6         7         return "success";8     }
1 
2 3
${status.index+1} 4 ${emp.empno} 5 ${emp.ename} 6 ${emp.job} 7
8 ${emp.salary} 9 ${emp.comm}10 ${emp.dept.dname}11 12
修改13
修改_214
删除15
查看下属16 17 18

 

转载于:https://www.cnblogs.com/ccw95/p/6164282.html

你可能感兴趣的文章
Ruby 中 0/0.0 = NaN
查看>>
JavaScript 闭包
查看>>
java获取当前时间前一周、前一月、前一年的时间
查看>>
话说WEB开发之页面重绘和回流
查看>>
using标识使用
查看>>
T264接口说明
查看>>
SELinux介绍
查看>>
Rsyslog实现Nginx日志统一收集
查看>>
linux文本处理三剑客之grep家族及其相应的正则表达式使用详解
查看>>
Python---装饰器
查看>>
s17data01
查看>>
java set and get 用法
查看>>
linux笔记1-1
查看>>
dubbo源码分析-负载均衡
查看>>
一统江湖的大前端(3) DOClever——你的postman有点low
查看>>
云栖大会上发布了哪些移动研发新利器?
查看>>
day6作业--游戏人生完善
查看>>
金字塔思维
查看>>
thinkphp空控制器的处理
查看>>
接口幂等
查看>>