【spring实战第五版遇到的坑】3.1中的例子报错
按照书中的例子,一直做到第3.1章使用JDBC读写数据时,在提交设计的taco表单时,报了如下的异常信息:
Failed to convert property value of type java.lang.String to required type java.util.List for property ingredients; nested exception is java.lang.IllegalStateException: Cannot convert value of type java.lang.String to required type tacos.Ingredient for property ingredients[0]: no matching editors or conversion strategy found
异常的字面意思就是字符串的ingredients[0]
不能转换成tacos.Ingredient
,表单中的ingredients
是字符串当然不能自动的转换成tacos.Ingredient
对象,不过spring中是可以自定义转换器来进行转换的。
添加如下的转换器,将String
转换成tacos.Ingredient
就可以了:
package tacos.web;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;import tacos.Ingredient;
import tacos.data.IngredientRepository;@Component
public class IngredientByIdConverter implements Converter<String, Ingredient> {private IngredientRepository ingredientRepo;@Autowiredpublic IngredientByIdConverter(IngredientRepository ingredientRepo) {this.ingredientRepo = ingredientRepo;}@Overridepublic Ingredient convert(String id) {return ingredientRepo.findById(id);}}
不添加上面的转换器,即使在第3.2章使用Spring Data JPA持久化数据,提交的taco表单也不会报错,因为tacos.Ingredient
已经进行对象到数据库的映射,即使不配置如上的转换器 ,也能成功的提交表单。在这种情况下,spring在遇到要要将String转换成tacos.Ingredient
时,会认为这个字符串就是他的主键,会根据这个字符串id查找到该对象,并将其加入List
中。
转载于:https://www.cnblogs.com/zhangfengxian/p/10706765.html
【spring实战第五版遇到的坑】3.1中的例子报错相关推荐
- Spring实战第五版源码
Spring实战第五版源码 链接:https://pan.quark.cn/s/11a451b1aa84 提取码:uzGW
- Spring实战第五版第二章字段校验返回视图报错解决及javax.validation完整pom依赖
Spring实战第五版第二章 2.3 校验表单输入 在编写"/design"页面post处理逻辑时,按照书本上直接'return "design"; '方式,会 ...
- Spring实战第五版观后感之第一章
spring所做的一切都是在简化开发,所以今天我们就来说说我所了解到的第一章的内容 一.什么是Spring? Spring的核心是提供了一个容器,通常称为Spring应用上下文,它们会创建和管理应用组 ...
- Spring实战(第3版)
<Spring实战(第3版) > 基本信息 原书名:Spring in Actiong(third edition) 作者: (美)Craig Walls 译者: 耿渊 张卫滨 出版社:人 ...
- 《spring实战第四版》的读书笔记
<spring实战第四版>的读书笔记 1 概述 <Spring实战第四版>描述了Spring4架构的设计,看完了以后,最大感觉是Spring的IOC与aop理念实在是太强大了, ...
- Spring实战(第四版)
Spring实战(第四版) 链接:https://pan.baidu.com/s/1PhnJqOsQPz5hqe-zxkqPOg 提取码:eu15 复制这段内容后打开百度网盘手机App,操作更方便哦
- Spring实战(第4版)
Spring实战第四版,在线阅读地址:https://potoyang.gitbook.io/spring-in-action-v4/,根据 pdf 整理完成.
- 【go实战系列五】 go1.19.2与pkg中error如何wrap与unwrap Errors | 将error进行wrap向上处理思想 | pkg/errors
历史go篇章 [go实战系列一]开篇:在循环中重新定义变量(redefining for loop variable semantics) [go实战系列二]关于切片的基本操作 copy sort a ...
- Spring 实战 第4版 读书笔记
第一部分:Spring的核心 1.第一章:Spring之旅 1.1.简化Java开发 创建Spring的主要目的是用来替代更加重量级的企业级Java技术,尤其是EJB.相对EJB来说,Spring提供 ...
- 高翔视觉SLAM十四讲(第二版)各种软件、库安装的以及报错解决方法
目录 前言 系统版本 下载高翔视觉SLAM十四讲第二版的源代码 一.安装 Vim 二.安装 g++ 三.安装 KDevelop 以及汉化 1.安装 2.汉化 四.安装 Eigen 库 五.安装 Pan ...
最新文章
- 把别人的Tcl/Tk代码加入到Go语言里12 游戏5 画图案?
- 虚无主义还是怀疑论?
- python职业发展方向_测试的职业发展方向有哪些?该如何规划?
- 宝宝的成长脚印6/15
- 网站压力测试软件(Apache JMeter)2.13 官方版 Error: Unable to access jarfile ApacheJMeter.jar
- 联想小新air14笔记本黑屏_联想小新air14锐龙版测评,谈谈它的好和坏
- C# 控制台应用程序输出颜色字体[更正版]
- OS X 终端修改备忘录
- PDMS Pipeline Tool 教程(一):安装说明
- ffmpeg之libx264编译安装方法及一键shell脚本
- 单片机C语言关键字之extern
- 信了你的邪之杭电1005
- 华为me909s与MT2503拨号上网流程总结
- Java基础教程:dubbo源码解析-服务暴露与发现
- 金山WPS服务端开发工程师(第一次)(2018年秋招 2018-9-4)
- 用大写字母打印三角形
- 全网最新小白API查Q绑定带反查SGK+带接口
- matlab四足仿真,基于MATLAB的四足机器人建模与仿真.docx
- SaaS独角兽成长秘籍:40%法则+7步走战略
- 关于微信支付签名错误的一些可能的解决方向
热门文章
- max3232ese_【MAX3232ESE+ PDF数据手册】_中文资料_引脚图及功能_(美信 Maxim Integrated)-采芯网...
- 华表Cell应用 - 在IE中使用华表Cell插件 | #华表Cell #报表
- Android开发程序获取GPS信息步骤
- bp神经网络算法原理公式,bp神经网络算法推导
- 我的世界服务器物品锁bug,【MOD教程】已知MOD服BUG物品解析
- 官方FastReport 2021最新中文开发者指南
- php分页类函数,php分页类的使用方法
- 抖音小程序达人入驻壁纸微信小程序安装教程
- DirectShow 简介
- directshow方法关键帧java,如何实现DirectShow source filter