- 参数绑定
- 当前端页面提交表单,表单数据对应后端实体类,控制层处理请求时,会将表单数据与实体类对象属性自动绑定(即转为对象)
| |
| 姓名: <input name="userName"/> <br/> |
| 年龄: <input name="age"/> <br/> |
| |
| |
| @Data |
| public class Person { |
| private String userName; |
| private Integer age; |
| } |
| |
| |
| @PostMapping("/seveuser") |
| Public Person seveuser(Person person){ |
| return person; |
| } |
| # 当前端页面是如下,将两个属性写在作为字符串一起提交,后端无法解析;那么我们可以自定义转换器进行解析 |
| # 前端: |
| 宠物:<input name="pet" value="阿猫,3"/> |
| |
| # 实体类: |
| @Data |
| public class Pet { |
| private String name; |
| private Integer age; |
| } |
| |
| # 配置类中:WebMvcConfigurer方法中可定制所有SpringMVC的功能; |
| # 这里我们重写addFormatters方法,用于添加格式(将前端发送的字符串中逗号前解析为name,逗号后解析为age) |
| @Bean |
| public WebMvcConfigurer webMvcConfigurer(){ |
| return new WebMvcConfigurer() { |
| |
| @Override |
| public void addFormatters(FormatterRegistry registry) { |
| registry.addConverter(new Converter<String, Pet>() { # 方法添加一个转换器,接收的参数为 新建一个转换器,<String, Pet>表示将字符串转为pet对象 |
| |
| @Override |
| public Pet convert(String source) { # source表示接收的String字符串 |
| if(!StringUtils.isEmpty(source)){ |
| Pet pet = new Pet(); |
| String[] split = source.split(","); |
| pet.setName(split[0]); |
| pet.setAge(Integer.parseInt(split[1])); |
| return pet; |
| } |
| return null; |
| } |
| |
| }); |
| } |
| |
| }; |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?