日期:2014-05-16 浏览次数:20404 次
最近在做项目的时候,遇见一个问题,项目架构是hibernate spring sprimgmvc,我有么一个类A,A里面有个属性是类B,A和B是多对一关系.我在前台form表单里面保存A的时候也需要把B的id保存起来,我就这么定义了一个input:
<input type="hidden" name="b.id" value="${dataObj.id }"/>然后我提交表单的时候报错了,错误如下:
org.springframework.beans.NullValueInNestedPathException: Invalid property 'b' of bean class [com.netqin.sample.A]: Value of nested property 'b' is null提示我b对象是null,我刚开始以为是springmvc 不支持这种级联一层的form赋值,但是想想又感觉不应该不支持,想着想着有看了眼异常,发现说是b is null, 我就在代码里面把b初始化了一下:
private B b;//更改前
private B b = new B();//更改后竟然发现就好了,成功提交表单.会偷又想了一下,人家确实是提示的说b是空,我觉得springmvc在给级联一层的属性赋值时,会直接调用级联属性的的set方法赋值例如:b.setId();如果这么直接调用的话 b肯定是空啊,
大家以后记住 需要在form里面使用多层级联的时候,一定要把对象先初始化.
发原创帖子不宜,实验方法更不易,还望转载时注明出处!