错误记录(11): source is null for getProperty(null, "name")

使用SSM框架做项目时,使用到了XML中的判断条件查询方式,代码如下:

<if test="machineInfo.name != null and machineInfo.name != ''">
	AND b.name like CONCAT('%',#{machineInfo.name},'%')
</if>
也就是如果有值,按条件查询,如果没有传入条件,则展示所有,运行项目时报错:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'machineInfo.name != null and machineInfo.name != '''. Cause: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "name")

source is null for getProperty(null, "name") 

这个相当于Mybatis封装的空指针异常,单没有传入条件时,machineInfo这个对象即为空,而进行条件判断machineInfo.name,自然会报空指针。

解决方法是加一层判断,先判断machineInfo是不是空:

<if test="machineInfo != null and machineInfo != ''">
	<if test="machineInfo.name != null and machineInfo.name != ''">
		AND b.name like CONCAT('%',#{machineInfo.name},'%')
	</if>
</if>
这样,没有传入任何参数时,也不会报错了,这里记录一下这个错误


猜你喜欢

转载自blog.csdn.net/weixin_36380516/article/details/79052139