10.SpringMVC注解式开发-处理器方法的参数
1.逐个参数接收
只要保证请求参数名与该请求处理方法的参数名相同即可
// 请求参数名 与该处理器中的请求方法的参数名相同 ,即可接收前台传递过来的参数
public ModelAndView method1(String username, int age) {
2.请求参数中文乱码问题
<!-- 使用 Spring 中的 过滤器 ,解决编码问题 (只对Post 请求生效)-->
<filter >
<filter-name>characterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<!-- 指定字符集 -->
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<!-- 是否 强制使用 上述的字符集,如果不使用这个,如果在代码中 指定了 字符集,那么 就不会 去使用 上面指定的了 -->
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
3.校正请求参数名@RequestParam
所谓校正请求参数名,是指若请求URL所携带的参数名与处理方法中指定的参数名不相同时,
则需在处理方法参数前,添加一个注解 @RequestParam("请求参数名"),指定请求URL所携带参数的名称
该注解是对处理方法参数进行修饰的
@RequestParam() 有三个属性
value:指定请求参数的名称
required:指定该注解所修饰的参数是否是必须的
defaultValue:指定当前参数的默认值
// 校正请求参数名 (前台传来的 参数名 和 这里 方法中的参数名 无法匹配,可以使用 这个注解 来映射一下 )
@RequestMapping(value = "/requestParams.do")
public ModelAndView method2(@RequestParam("username") String name, int age) {
4.整体参数接收
将处理器方法的参数定义为一个对象,只要保证请求参数名与这个对象的属性一致即可
参数名称中不用写成 对象.属性 的 形式(前台给的参数也不用写成 对象.属性)
username :<input name="username" type="text"/><br/>
age : <input name="age" type="text"/><br/>
@RequestMapping(value = "/objectParams.do")
public ModelAndView method3(Person person) { System.out.println(person);
ModelAndView mv = new ModelAndView();
mv.addObject("username", person.getUsername());
mv.addObject("age",person.getAge());
mv.setViewName("/WEB-INF/jsp/hello.jsp");
return mv;
}
5.域属性参数的接收
所谓域属性,即对象属性。(该对象的某属性还是一个对象)
当请求参数中的数据为某类对象域属性的属性值,要求请求参数名为 "域属性名.属性"
username :<input name="person.username" type="text"/><br/>
age : <input name="person.age" type="text"/><br/>
1 //域属性(某个属性 是 对象类型)参数的接收
@RequestMapping(value = "/objectPropertyParams.do")
public ModelAndView method4(Earth earth) { System.out.println(earth);
ModelAndView mv = new ModelAndView();
mv.addObject("username", earth.getPerson().getUsername());
mv.addObject("age",earth.getPerson().getAge());
mv.setViewName("/WEB-INF/jsp/hello.jsp");
return mv;
}
6.路径变量@PathVariable
对于处理器方法中所接受的请求参数,可以来自请求中所携带的参数,也可以来自于请求的URI中所携带的变量,
此时,需要借助@PathVariable 注解
// 路径变量 (参数 藏在 路径中传递过来)(了解就好)
@RequestMapping(value = "/{pname}/{age}/pathVariableParams.do")
public ModelAndView method5(@PathVariable("pname") String name,@PathVariable int age) {
ModelAndView mv = new ModelAndView();
mv.addObject("username", name);
mv.addObject("age",age);
mv.setViewName("/WEB-INF/jsp/hello.jsp");
return mv;
}
10.SpringMVC注解式开发-处理器方法的参数的更多相关文章
- 《SpringMVC从入门到放肆》十一、SpringMVC注解式开发处理器方法返回值
上两篇我们对处理器方法的参数进行了分别讲解,今天来学习处理器方法的返回值. 一.返回ModelAndView 若处理器方法处理完后,需要跳转到其它资源,且又要在跳转资源之间传递数据,此时处理器方法返回 ...
- 11.SpringMVC注解式开发-处理器方法的返回值
处理器方法的返回值 使用@Controller 注解的处理器的处理器方法,其返回值常用的有四种类型 1.ModelAndView 2.String 3.void 4.自定义类型对象 1.返回Model ...
- springmvc 注解式开发 处理器方法的返回值
1.返回void -Ajax请求 后台: 前台: 返回object中的数值型: 返回object中的字符串型: 返回object中的自定义类型对象: 返回object中的list: 返回object中 ...
- SpingMVC注解式开发-处理器方法的参数(形参request等)
HttpServletRequest HttpServletResponse HttpSession 请求中所携带的请求参数
- 9.SpringMVC注解式开发-处理器的请求映射规则的定义
1.对请求URI的命名空间的定义 @RequestMapping的value属性用于定义所匹配请求的URI.但对于注解在方法上和注解在类上, 其value 属性 所指定的URI,意义是不同的 一个@C ...
- SpringMVC注解式开发之接收请求参数
逐个接收(涉及注解@RequestParam) index.jsp的name必须和后端的名字一致,第一种才可以实现. 以对象形式整合接收 域属性参数的接收 数组或集合参数的接收 restfull风格传 ...
- 3.2.3 SpringMVC注解式开发
SpringMVC注解式开发 1. 搭建环境 (1) 后端控制器无需实现接口 , 添加相应注解 Controller类添加注解 @Controller //该注解表将当前类交给spring容器管理 @ ...
- 《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)
上一篇我们结束了配置式开发,配置式开发目前在企业中用的并不是很多,大部分企业都在使用注解式开发,所以今天我们就来学习注解式开发.所谓SpringMVC注解式开发是指,处理器是基于注解的类的开发方式.对 ...
- SpringMVC 注解式开发
SpringMVC的注解式开发是指,处理器是基于注解的类的开发.对于每一个定义的处理器,无需再配置文件中逐个注册,只需在代码中通过对类与方法的注解,便可完成注册.即注解替换是配置文件中对于处理器的注册 ...
随机推荐
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_17-CMS前端工程创建-单页面应用介绍
查看运行起来的页面的源代码 这个webpck打包生成的文件. 单页面应用的优缺点: 优点: 1.用户操作体验好,用户不用刷新页面,整个交互过程都是通过Ajax来操作. 2.适合前后端分离开发,服务端提 ...
- Qt编写自定义控件32-等待进度条控件
一.前言 在各种各样的执行任务界面,有时候需要比较多的时间,需要给出一个直观的等待进度条表示当前正在执行的进度,而不至于懵逼在那里,用户不会觉得程序死了还是干嘛了. 等待进度条有好几种办法,比如直接叫 ...
- Qt编写自定义控件30-颜色多态按钮
一.前言 这个控件一开始打算用样式表来实现,经过初步的探索,后面发现还是不够智能以及不能完全满足需求,比如要在此控件设置多个角标,这个用QSS就很难实现,后面才慢慢研究用QPainter来绘制,我记得 ...
- 共享打印机,错误0x80070035和错误0x00000709的解决办法
这两个错误可以说是共享打印机里经常出现的错误了. 首先,要确认客户机可以ping通打印机的直连电脑的IP,如果这一步不通,那别玩了. 其次,很多人会忽略的一点儿,两个电脑的dns最好设置为相同的,经测 ...
- Spring Security(20)——整合Cas
整合Cas 目录 1.1 配置登录认证 1.1.1 配置AuthenticationEntryPoint 1.1.2 配置CasAuthenticationFilt ...
- celery监控工具flower
特性 用Celery事件实时监控 任务进程和历史 能够显示任务的详细信息(arguments, start time, runtime等) 图形化和统计 远程控制 查看worker状态和统计 关闭和重 ...
- dp[2019.5.25]
1.实例计算(写出计算过程): 1)对维数为序列<5, 10, 3, 12, 5, 50, 6>的各矩阵,找出其矩阵链乘积的一个最优加全部括号. 这是一个矩阵连乘问题,基本知识可以参考: ...
- 解决 nginx 单点问题的方案【h】
一.问题域 nginx.lvs.keepalived.f5.DNS轮询,每每提到这些技术,往往讨论的是接入层的这样几个问题: 1)可用性:任何一台机器挂了,服务受不受影响 2)扩展性:能否通过增加机器 ...
- Python 零基础知识学习
在开始学习Python之前,首先进入python shell ,输入:import this 命令,如下图所示: Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Py ...
- 信用卡分销系统源码、分销系统定制贴牌、信用卡三级分销系统源码、信用卡返佣系统OEM
信用卡返佣分销系统贴牌,全套源码,可定制UI界面 这一整套绝对是市场上最完善最好的一套系统:里面的特色功能: 1.合伙人功能,解决你前期的资金以及资源问题 2.推广素材库,全方位增加推广效率 3.红包 ...