当一个表没有外键的时候,该表的hibernate Bean模型可以被struts2的模型驱动获取;
当表是外表的时候,也就是含有外键的时候,hibernate的Bean模型的成员变量会有类类型,
比如teacher表,含有外键college,Bean模型用hibernate自动生成的Teacher,成员属性是College college;
前端界面
<select name="college" title="选择学院">
<option value="-1">学院</option>
<c:forEach items="${listColl}" var="list1">
<option value="${list1 }">${list1.college }</option>
</c:forEach>
</select> 模型驱动获取到的Teacher为null;原因大概是默认的struts2的模型的成员属性是基本类型,不是类类型
或者是因为Teacher类有set 集合?因为Teacher表也是其他表的外表。导致Teaher类的某些成员(set )没赋值,
所以Teacher类型的变量创建不了。
更改为 <option value="${list1.id }">${list1.college }</option>模型驱动获取到的Teacher为null;
原因是成员变量为类,上面是字段值的属性是基本类型,赋值不了Teacher类。
这是不用hibernate框架Bean,操作数据库的时候才使用hibernate的Bean,将自己的Bean赋值给hibernate的Bean
新建一个自己的模型类ModelTeacher 成员属性是 int college;不用hibernate框架
<select name="college" title="选择学院">
<option value="-1">学院</option>
<c:forEach items="${listColl}" var="list1">
<option value="${list1.id }">${list1.college }</option>
</c:forEach>
模型驱动类是ModelTeacher ,使用查询数据库的方法,set,get 类成员方法;使用hibernate框架插入数据库。
技术为人所有,人不应该为技术所困扰,使用技术原理实现性能。