有个问题请问一下各位!我写一个系统,用Struts2+hibernate框架,用JSP写了一个录入数据的界面,通过表单提交给Action类进行对象的保存。
我要保存的是Student对象,其中包含所属班级的属性,在Student类中引用了Class类//Student的POJO类
public class Student {
private int id;
private String name;
private Class ofclass;
//其他属性和getter,setter省略
}
//Class的POJO类
public class Classt {
private int id;
private String name;
//其他属性和getter,setter省略
}
Student.hbn.xml中关于ofclass列的配置:<many-to-one class="edu.gdut.studentmis.vo.Class" fetch="join" name="ofclass">
<column name="OFCLASS"/>
</many-to-one>
JSP中的表单: <form action="stu_add" method="post">
<!-- 其他表格省略 -->
<tr>
<td>所属班级</td>
<td>
<select name="obj.ofclass">
<!-- 这里的c是Class对象,这里没有问题,c.name能正常显示 -->
<c:forEach var="c" items="${items}">
<option value="c">${c.name}</option>
</c:forEach>
</select>
</td>
</tr>
</from>我想知道option中的value值可以设置为一个对象吗?我把value值设置为对象之后进行保存,报错说数据库中的ofclass列不能为空的,也就是有两种可能:一种是value值不能设置为对象;另一种可能就是在将Student进行保存的时候因为Hibernate的配置问题不能将Class对象转为class的id存入Student的班级列。请问应该怎么解决呢?
初学,没有经验,请前辈们多多指教!
我要保存的是Student对象,其中包含所属班级的属性,在Student类中引用了Class类//Student的POJO类
public class Student {
private int id;
private String name;
private Class ofclass;
//其他属性和getter,setter省略
}
//Class的POJO类
public class Classt {
private int id;
private String name;
//其他属性和getter,setter省略
}
Student.hbn.xml中关于ofclass列的配置:<many-to-one class="edu.gdut.studentmis.vo.Class" fetch="join" name="ofclass">
<column name="OFCLASS"/>
</many-to-one>
JSP中的表单: <form action="stu_add" method="post">
<!-- 其他表格省略 -->
<tr>
<td>所属班级</td>
<td>
<select name="obj.ofclass">
<!-- 这里的c是Class对象,这里没有问题,c.name能正常显示 -->
<c:forEach var="c" items="${items}">
<option value="c">${c.name}</option>
</c:forEach>
</select>
</td>
</tr>
</from>我想知道option中的value值可以设置为一个对象吗?我把value值设置为对象之后进行保存,报错说数据库中的ofclass列不能为空的,也就是有两种可能:一种是value值不能设置为对象;另一种可能就是在将Student进行保存的时候因为Hibernate的配置问题不能将Class对象转为class的id存入Student的班级列。请问应该怎么解决呢?
初学,没有经验,请前辈们多多指教!
解决方案 »
- 用session.clear()方法实现注销功能,报DeBug错误,求解
- ajax问题:为什么取到值没办法比较?
- 关于log4j的一个让人无比困惑的问题。
- ajax4jsf
- 我想通过paperNo获得所有的信息,但是页面上只显示paperNo,请帮我看看哪儿错了,不胜感谢
- 求几个高级交流群 java 和 ajax方面的谢谢啦!
- jsp+js調用問題,麻煩幫我看看.100分送你.謝謝.
- 在自己机器上做网站,怎样让别人访问?
- applet和servlet间的通讯问题?如何实现mvc???
- function的问题,大家进来帮看看!
- 大神求解,这个jsp为什么在网页上展示不出来?
- java页面用request.getParameter获取jsp页面表单提交的数据时发生乱码怎么解决
private Class ofclass;
对,就这句话,你这是建立了班级的对象是吧,ssh是对对像进行操作,设置了一对多关系后是可以进行对象数据插入的。
在前台jsp中,你用c标签遍历后,你可以在浏览器中查看一下,下拉框中的value值是否存在。
好的,查看了一下,发现应该是value不能设置为对象了,自动将option中的文本设置为了value值。那这样我应该如何将班级对象保存进Student对象呢?如果我将option的value设置为班级id,这样传给后台保存的话还需要根据id查找对应的班级对象啊,这是不是不太规范呢?
你的思路没有错,在下拉框中添加id为value值,然后再查一遍数据,再做添加,这应该是最为安全的方法。h这个对对象操作不太灵活,所以现在都在用mybatis,楼主可以参考一下,希望能帮到你。