thymeleaf点击事件th:onclick传递th:each循环遍历的对象作为参数报错
问题背景
<li th:each="car:${cars}" th:onclick="parkCar([[${lot}]],this)">
之前编写了以上代码,未进行以下操作时,代码尚可用,直到今天发现代码报错了(内容如下)
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.example.springboot.entity.car.ParkingLot_$$_jvst14b_1["handler"])
过程
刚开始没有仔细查看报错内容,一直纠结为什么之前能用的代码现在却出错了,于是埋头搜索一堆关于onclick点击事件如何传入ModelAndView数据的方法,这里记录两种传参方式:
①
th:οnclick="函数名([[${变量名}]])
只能传数值或字符串,不能传对象
②
th:οnclick="|函数名('${变量名或表达式}')|"
${}的内容只能是数值或布尔值,不能是其他类型的数据
解决方案
最终在一篇博文上找到简单、有效的方法:
在实体类上注解:
@JsonIgnoreProperties(value={“hibernateLazyInitializer”,”handler”,”operations”,”roles”,”menus”})