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注解式开发-处理器方法的参数的更多相关文章

  1. 《SpringMVC从入门到放肆》十一、SpringMVC注解式开发处理器方法返回值

    上两篇我们对处理器方法的参数进行了分别讲解,今天来学习处理器方法的返回值. 一.返回ModelAndView 若处理器方法处理完后,需要跳转到其它资源,且又要在跳转资源之间传递数据,此时处理器方法返回 ...

  2. 11.SpringMVC注解式开发-处理器方法的返回值

    处理器方法的返回值 使用@Controller 注解的处理器的处理器方法,其返回值常用的有四种类型 1.ModelAndView 2.String 3.void 4.自定义类型对象 1.返回Model ...

  3. springmvc 注解式开发 处理器方法的返回值

    1.返回void -Ajax请求 后台: 前台: 返回object中的数值型: 返回object中的字符串型: 返回object中的自定义类型对象: 返回object中的list: 返回object中 ...

  4. SpingMVC注解式开发-处理器方法的参数(形参request等)

    HttpServletRequest HttpServletResponse HttpSession 请求中所携带的请求参数

  5. 9.SpringMVC注解式开发-处理器的请求映射规则的定义

    1.对请求URI的命名空间的定义 @RequestMapping的value属性用于定义所匹配请求的URI.但对于注解在方法上和注解在类上, 其value 属性 所指定的URI,意义是不同的 一个@C ...

  6. SpringMVC注解式开发之接收请求参数

    逐个接收(涉及注解@RequestParam) index.jsp的name必须和后端的名字一致,第一种才可以实现. 以对象形式整合接收 域属性参数的接收 数组或集合参数的接收 restfull风格传 ...

  7. 3.2.3 SpringMVC注解式开发

    SpringMVC注解式开发 1. 搭建环境 (1) 后端控制器无需实现接口 , 添加相应注解 Controller类添加注解 @Controller //该注解表将当前类交给spring容器管理 @ ...

  8. 《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)

    上一篇我们结束了配置式开发,配置式开发目前在企业中用的并不是很多,大部分企业都在使用注解式开发,所以今天我们就来学习注解式开发.所谓SpringMVC注解式开发是指,处理器是基于注解的类的开发方式.对 ...

  9. SpringMVC 注解式开发

    SpringMVC的注解式开发是指,处理器是基于注解的类的开发.对于每一个定义的处理器,无需再配置文件中逐个注册,只需在代码中通过对类与方法的注解,便可完成注册.即注解替换是配置文件中对于处理器的注册 ...

随机推荐

  1. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_17-CMS前端工程创建-单页面应用介绍

    查看运行起来的页面的源代码 这个webpck打包生成的文件. 单页面应用的优缺点: 优点: 1.用户操作体验好,用户不用刷新页面,整个交互过程都是通过Ajax来操作. 2.适合前后端分离开发,服务端提 ...

  2. Qt编写自定义控件32-等待进度条控件

    一.前言 在各种各样的执行任务界面,有时候需要比较多的时间,需要给出一个直观的等待进度条表示当前正在执行的进度,而不至于懵逼在那里,用户不会觉得程序死了还是干嘛了. 等待进度条有好几种办法,比如直接叫 ...

  3. Qt编写自定义控件30-颜色多态按钮

    一.前言 这个控件一开始打算用样式表来实现,经过初步的探索,后面发现还是不够智能以及不能完全满足需求,比如要在此控件设置多个角标,这个用QSS就很难实现,后面才慢慢研究用QPainter来绘制,我记得 ...

  4. 共享打印机,错误0x80070035和错误0x00000709的解决办法

    这两个错误可以说是共享打印机里经常出现的错误了. 首先,要确认客户机可以ping通打印机的直连电脑的IP,如果这一步不通,那别玩了. 其次,很多人会忽略的一点儿,两个电脑的dns最好设置为相同的,经测 ...

  5. Spring Security(20)——整合Cas

    整合Cas 目录 1.1           配置登录认证 1.1.1     配置AuthenticationEntryPoint 1.1.2     配置CasAuthenticationFilt ...

  6. celery监控工具flower

    特性 用Celery事件实时监控 任务进程和历史 能够显示任务的详细信息(arguments, start time, runtime等) 图形化和统计 远程控制 查看worker状态和统计 关闭和重 ...

  7. dp[2019.5.25]

    1.实例计算(写出计算过程): 1)对维数为序列<5, 10, 3, 12, 5, 50, 6>的各矩阵,找出其矩阵链乘积的一个最优加全部括号. 这是一个矩阵连乘问题,基本知识可以参考: ...

  8. 解决 nginx 单点问题的方案【h】

    一.问题域 nginx.lvs.keepalived.f5.DNS轮询,每每提到这些技术,往往讨论的是接入层的这样几个问题: 1)可用性:任何一台机器挂了,服务受不受影响 2)扩展性:能否通过增加机器 ...

  9. Python 零基础知识学习

      在开始学习Python之前,首先进入python shell ,输入:import this 命令,如下图所示: Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Py ...

  10. 信用卡分销系统源码、分销系统定制贴牌、信用卡三级分销系统源码、信用卡返佣系统OEM

    信用卡返佣分销系统贴牌,全套源码,可定制UI界面 这一整套绝对是市场上最完善最好的一套系统:里面的特色功能: 1.合伙人功能,解决你前期的资金以及资源问题 2.推广素材库,全方位增加推广效率 3.红包 ...