Spring NotReadablePropertyException错误:stCode属性不可读问题排查
解决org.springframework.beans.NotReadablePropertyException:String类无'stCode'属性错误
这个错误的核心原因很明确:控制器传递模型属性时,错误传入了字符串"rBean",而非RBean类的实例,导致Spring MVC尝试把表单数据绑定到String对象上,但String类并没有stCode属性及对应的getter方法,因此抛出异常。
问题拆解
控制器代码错误:
错误写法示例:// 错误:传入字符串字面量,而非RBean实例 model.addAttribute("rBean", "rBean");这里把字符串
"rBean"放到模型里,Spring会将其识别为String类型的模型属性,后续表单绑定自然找不到stCode属性。表单与实体类的匹配逻辑:
Regist.jsp的表单字段绑定的是rBean.stCode,而RBean实体类本身是有stCode属性和对应getter/setter的,但因为模型里的对象类型不对,绑定完全失效。
解决方案
修正控制器代码,确保向模型中传入的是RBean的实例:
// 正确:传入RBean类的实例 model.addAttribute("rBean", new RBean());
这样Spring MVC就能正确将表单数据绑定到RBean对象的stCode属性上,避免抛出属性不可读的异常。
内容的提问来源于stack exchange,提问作者Ankit Sharma
相关产品推荐
相关产品推荐

