调试了一早上,就是老出这两个错,总算把问题找出来了,这里总结一下:
教材上都是这样来讲解struts标签 logic:iterate
<logic:iterate id="emp" name="employee">
<bean:write name="emp" property="name"/>
</logic:iterate>
但是应用中我们却多会用到这样的 logic:iterate 格式:有外键
<logic:iterate id="emp" name="employees">
<bean:write name="emp" property="role.name"/>
</logic:iterate>
然后你发现如题的报错:
Exception thrown by getter for property XXX of bean XXX
No getter method for property XXX of bean XX
在我的browser里jsp显示了一半(tiles layout)
问题无非是这样的:
first:属性不一致 @author assosson 200811121118
<bean:write name="emp" property="role.namr"/>中 property与po中的属性不一致
如把name打成了namr
second:在自动生成的hibernate映射文件*.hbm.xml中,把有<many-to-one>的属性加一个lazy="false"
切记,所有用到外键的,都要这样处理,要不然延迟加载就会报错,就算你到时怎么检查getter方法,也找不出来原因
保险起见,我这样加: fetch="join" lazy="false" not-null="true"