首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

springMVC+hibernate 嵌套对象时产生的一个有关问题及解决办法

2012-10-26 
springMVC+hibernate 嵌套对象时产生的一个问题及解决方法最近在使用springMVC的时候,产生了这样一个问题。

springMVC+hibernate 嵌套对象时产生的一个问题及解决方法

最近在使用springMVC的时候,产生了这样一个问题。

?

一个Hibernate的Entity,命名为Department.

?

Department 内有一个父节点变量 命名为 depParent;

?

因为是一个外键设置,所以depParent不能在声明时 却 new ,也不能在get 的时候去new

?

所以我在一个JSP页面提交一个这样的form时

?

<form id="addForm" action="addDepartment.htm" method="post" onsubmit="return inputCheck();"><table><tr><td>*<spring:message code="departMent_name" />:</td><td><input type="text" id="name" name="name"/></td></tr><tr><td><spring:message code="departMent_beyond" />:</td><td><!-- <input id="parentDep.id" type="hidden" name="parentDep.id" /><input id="parentDep.name" type="text" name="parentDep.name"/> --><input id="parentDep.id" type="text" name="parentDep.id"/></td></tr></table> <div><input type="submit"  value="<spring:message code="submit"/>" /></div></form>

?这两个input都是有值的,然后我后台的controll用Department进行接收

?

?结果老是抛空指针异常。

?

用过struts2的都知道,这种写法是没有什么问题,可以直接进行类型的转换。

?

可是spring不行,我开始还以为是spring mvc不支持这种对象的嵌套的类型转换。

?

但是写propertyEditor也解决不了问题,

?

最后没办法只能跟踪源码,发现spring在做类型转换时,会用反射的方法取调用get方法,结果取出来是null,就会抛异常。

?

所以,最后的解决方案,只能再做一个暂态的变量来给spring进行转换。

?

到此,问题找了个折中的方式解决了。

?

不过从这点来看,spring的类型转换没有strust2的强大和智能,

?

所以如果想采用这种方式,对象类的嵌套对象,在get方法的时候必须能取到一个对象,而不是null。如果没办法new,就用一个新的变量来做一个中转吧。

?

这是我自己学习找到的一些经验,如有什么不足,多指教。

?

?

热点排行