解决Spring Mvc中对象绑定参数重名的问题
前言
本文主要给大家介绍了关于解决Spring Mvc对象绑定参数重名问题的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:
发现问题
SpringMvc提供了对象参数绑定功能,例如Person对象有一个age字段,
则页面表单使用
<input type='text' name='age' value='25'>
Controller中使用
public void getPerson(Person person){ // 此时person对象的age属性值为25 }
若是Controller中需要绑定两类对象,且这两类对象有属性名相同,例如:
Teacher类有age属性,Student类也有age属性,此时页面上再使用
<input type='text' name='age' value='25'>
Controller中接收如下:
public void getPerson(Teacher t,Student s){ // 此时报错,因为SpringMvc并不知道这个name属于哪个对象 }
解决办法
新建包装类如下:
public class TeaAndStu{ private Teacher t; private Student s; // 省略构造函数和getter setter }
此时写法如下:
老师年龄: <input type='text' name='t.age' value='20'/>
学生年龄: <input type='text' name='s.age' value='10'/>
// 由于页面中使用了绑定参数的前缀,此时通过包装类可以正常传入参数 public void getPerson(TeaAndStu ts){ // ts.t.age = '20'; // ts.s.age = '10'; }
总结
以上就是这篇文章的全部内容了,若是各位有更好的解决办法,希望留言告知,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
[Spring MVC]-详解SpringMVC的各种参数绑定方式
SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" t
-
springmvc 参数绑定总结
最近在学习springmvc,今天把springmvc 参数绑定给整理一下,也算个学习笔记吧! @RequestParam 绑定单个请求 RequestMapping(value = "/form2") @ResponseBody public String form2(@RequestParam String name){ logger.info("name=" + name ); return ""; } @RequestParam 有req
-
关于Spring MVC同名参数绑定问题的解决方法
前言 最近在使用Spring MVC接收参数的时候,碰到个同名参数绑定的问题,参考了好几篇文章才解决问题,所以自己在这里总结一下,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍: 比如,我的表单是这样的: <form action="/test.action" method="post"> <input name="user.name"> <input name="acc.name"&g
-
解决Spring Mvc中对象绑定参数重名的问题
前言 本文主要给大家介绍了关于解决Spring Mvc对象绑定参数重名问题的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 发现问题 SpringMvc提供了对象参数绑定功能,例如Person对象有一个age字段, 则页面表单使用 <input type='text' name='age' value='25'> Controller中使用 public void getPerson(Person person){ // 此时person对象的age属性值为25 }
-
彻底解决Spring mvc中时间的转换和序列化等问题
痛点 在使用Spring mvc 进行开发时我们经常遇到前端传来的某种格式的时间字符串无法用java8的新特性java.time包下的具体类型参数来直接接收. 我们使用含有java.time封装类型的参数接收也会报反序列化问题,在返回前端带时间类型的同样会出现一些格式化的问题.今天我们来彻底解决他们. 建议 其实最科学的建议统一使用时间戳来代表时间.这个是最完美的,避免了前端浏览器的兼容性问题,同时也避免了其它一些中间件的序列化/反序列化问题.但是用时间表达可能更清晰语义化.两种方式各有千秋,如
-
spring MVC中传递对象参数示例详解
前言 初学java,由于项目紧急,来不及仔细的研究,在传递参数时就老老实实的一个一个的采用@RequestParam注解方式传递,最近认真看了一下,发现java也具有类似Asp.net Mvc传递对象做参数的方式,即采用@ModelAttribute注解的方式,接收方式如下: @RequestMapping("hello") public String Hello(@ModelAttribute("user") User user) { System.out.pri
-
spring mvc中的@PathVariable动态参数详解
目录 spring mvc @PathVariable动态参数 spring mvc是如何做到根据参数名动态绑定参数的? 反射获取参数名 -parameters参数 -g参数 ASM SpringMVC的处理方式 总结 spring mvc @PathVariable动态参数 spring mvc中的@PathVariable是用来获得请求url中的动态参数的,十分方便 @Controller public class TestController { @RequestMapping(value
-
Spring Mvc中传递参数方法之url/requestMapping详解
前言 相信大家在使用spring的项目中,前台传递参数到后台是经常遇到的事, 我们必须熟练掌握一些常用的参数传递方式和注解的使用,本文将给大家介绍关于Spring Mvc中传递参数方法之url/requestMapping的相关内容,分享出来供大家参考学习,话不多说,直接上正文. 方法如下 1. @requestMapping: 类级别和方法级别的注解, 指明前后台解析的路径. 有value属性(一个参数时默认)指定url路径解析,method属性指定提交方式(默认为get提交) @Reques
-
详解获取Spring MVC中所有RequestMapping以及对应方法和参数
在Spring MVC中想要对每一个URL进行权限控制,不想手工整理这样会有遗漏,所以就动手写程序了.代码如下: /** * @return * @author Elwin ZHANG * 创建时间:2017年3月8日 上午11:48:22 * 功能:返回系统中的所有控制器映射路径,以及对应的方法 */ @RequestMapping(value = "/maps", produces = "application/json; charset=utf-8") @Re
-
Spring Kafka中如何通过参数配置解决超时问题详解
目录 背景 思路 过程 步骤一,查询版本特性 步骤二,查源码 步骤三,查自身的代码 总结 背景 这是我们团队负责的一个不太核心的服务.之前与外部交互时应外部要求由普通kafka集群改成加密kafka集群.我们是数据生产端. 改的过程中并跑上线,60%的请求耗时增加了2倍,也还是在百毫秒的量级可以接受.但是每次重启的第一个请求要5s以上,会超过:运行过程中,一两个月也会有一次超时.因为我们有三次重试,整体没有影响成功率. 上线的时候我们问过网络组,还专门请教过公司专业负责kafka的团队.结论是:
-
spring mvc中的@PathVariable获得请求url中的动态参数
spring mvc中的@PathVariable是用来获得请求url中的动态参数的,十分方便,复习下: @Controller public class TestController { @RequestMapping(value="/user/{userId}/roles/{roleId}",method = RequestMethod.GET) public String getLogin(@PathVariable("userId") String user
-
spring mvc中的@ModelAttribute注解示例介绍
前言 本文介绍在spring mvc中非常重要的注解@ModelAttribute.这个注解可以用在方法参数上,或是方法声明上.这个注解的主要作用是绑定request或是form参数到模型对象.可以使用保存在request或session中的对象来组装模型对象.注意,被@ModelAttribute注解的方法会在controller方法(@RequestMapping注解的)之前执行.因为模型对象要先于controller方法之前创建. 请看下面的例子 ModelAttributeExample
-
spring mvc中注解@ModelAttribute的妙用分享
前言 本文主要给大家介绍了关于spring mvc注解@ModelAttribute妙用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 在Spring mvc中,注解@ModelAttribute是一个非常常用的注解,其功能主要在两方面: 运用在参数上,会将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中,便于View层使用: 运用在方法上,会在每一个@RequestMapping标注的方法前执行,如果有返回值,则自动将该返回值
随机推荐
- VBA解决Windows空当接龙的617局
- 详解Redis用链表实现消息队列
- 详解Angular4中路由Router类的跳转navigate
- MyBatis学习教程(二)—如何使用MyBatis对users表执行CRUD操作
- Java Vector类详解及实例代码
- 快速获取Ajax通信对象的方法
- YII2自动登录Cookie总是失效的解决方法
- JavaScript中的return语句简单介绍
- PHP使用静态方法的几个注意事项
- 跟老齐学Python之有容乃大的list(2)
- Python统计日志中每个IP出现次数的方法
- C++中实现把表的数据导出到EXCEL并打印实例代码
- asp.net+Ajax 文本文件静态分页实现代码
- mysql启动提示mysql.host 不存在,启动失败的解决方法
- 使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
- 微信小程序 获取设备信息 API实例详解
- 在JavaScript中实现类的方式探讨
- JS window.opener返回父页面的应用
- PHP json_encode中文乱码问题的解决办法
- 详解C++编程中的文件流与字符串流