请教一个spring mvc更新操作的问题

问题简述一下:

我有两个表dish和ingredient,dish中ingredient_id是外键,关联到ingredient的id.

在spring mvc中建立域模型Dish和Ingredient,Dish中有ingredient属性,Ingredient中有dish属性,分别注解@OneToOne标记。

cotroller里editForm方法解析url中的id,然后通过service获得dish,然后放到model里uiModel.addAttribute("dish", dish)。

之前这些都没有问题,在jsp页面上可以得到dish。

在jsp上用......来指定映射关系。如果我理解没错这里实际构造了一个新的对象dish,然后在表单提交时返回给controller。如果哪个属性没有指定,那么在controller中得时dish上那个属性就是null。

dish.ingredient不是普通类型,是个对象,难道要把ingredient的属性也一一重装在表单里提交一下才行吗?这里无法用,会报错。

其实只是想把model里的dish上的个别属性修改一下,然后就把这个dish对象传回给controller,这个如何做到呢?

1个回答

试试,因该是需要ingredient这个对象去引用属性

Brianlicorice
Brianlicorice 加上这个是可以,但是ingredient中没有指定的属性在返回controller后是null。 这里我就不能理解modelAtrribute指定的'dish'难道不应该就是model里的那个dish吗,但为什么只有在表单里明确引用了或者赋值的属性才能传回controller呢?感觉这个是一个bug. 现在的解决办法是改用@sessionAttribute,加在controller上,把dish放在session里。
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问