页面显示错误:
控制台显示错误:
formBean:
private CRecruitment crecruitment=new CRecruitment(); public CRecruitment getCrecruitment() { return crecruitment; } public void setCrecruitment(CRecruitment recruitment) { crecruitment = recruitment; }
hibernate 映射:
CRecruitment:
<many-to-one name="cposition" class="com.igolf.entity.CPosition" fetch="join" cascade="all" lazy="false"> <column name="POSITION_ID" /> </many-to-one>
CPosition:
<set name="crecruitments" inverse="true" lazy="false" cascade="all"> <key> <column name="POSITION_ID" /> </key> <one-to-many class="com.igolf.entity.CRecruitment" /> </set>
form 已经注入
jsp页面代码是:
<p class="first"> <label> 编号:</label> <input type="text" name="crecruitment.id" size="30" readonly="readonly" value="${crecruitment.id }"/> </p> <p> <label>职位名称:</label> <input type="text" name="crecruitment.cposition.id" size="30" value="${crecruitment.cposition.position }"/> <!-- <select name="crecruitment.cposition.id" > <c:forEach items="${cposition}" var="xx"> <option selected="selected" value="${ xx.id }">${xx.position}</option> </c:forEach> </select>--> </p> <p> <label>发布日期:</label> <input type="text" name="crecruitment.date" size="30" value="${crecruitment.date }"/> * </p>
执行的操作时要保存信息,好久没写了,不知道是不是hibernate多对一的配置问题!
改了之后再插入mysql错误 就说明这个form问题已经解决了
插入错误有可能是crecruitment里没set cposition,插入前
先crecruitment.setCposition(cposition);
你可以在插入前先把crecruitment的属性全部System.out.println();一下 看看有没有都设置好了 包括crecruitment里cposition的id和positon
有在struts-config里定义formbean嚒
[code="java"] [/code]
我觉得是form bean那个java代码的问题
外键没有设置好,你在input里有crecruitment.cposition.id和 crecruitment.cposition.position ,应该是这个position对象没new出来,所以不能设置
如果是因为CPosition的原因,换种思路,要不你就在formbean里定义一个CPosition
[code="java"]private CPosition cposition=new CPosition();
private CRecruitment crecruitment=new CRecruitment();
public CRecruitment getCrecruitment() {
return crecruitment;
}
public void setCrecruitment(CRecruitment recruitment) {
crecruitment = recruitment;
}
CPosition getter setter。。。
input里用cposition.id 不要用crecruitment.cposition.id,position字段也一样
[/code]
或者就在CRecruitment类的构造函数里,直接给cposition也new一个出来
[code="jsp"]
[/code]
看你的代码中crecruitment类中是有cposition对象。你试一试把crecruitment类中cposition对象属性new一下!