struts2 hibernate如何根据下拉框的值进行查询
就像学生和班级表下拉列表显示的是班级如何根据下拉列表的显示的班级进行查询,查询出该班所有的学生jsp代码,可以动态取到下拉列表中的值<frmaction="user_fi...
就像学生和班级表 下拉列表显示的是班级 如何根据下拉列表的显示的班级进行查询 , 查询出该班所有的学生
jsp代码, 可以动态取到下拉列表中的值
<frm action="user_findByConditions" method="post">
<select name="student">
<s:iterator value="students" var="v_student">
<option value="${v_student.clz.cid}">${v_student.clz.croom}</option>
</s:iterator>
</select>
<s:submit value="提交"></s:submit>
</form>
<s:iterator value="students" var="s">
<tr>
<td>${s.sid}</td>
<td>${s.name}</td>
<td>${s.age}</td>
</s:iterator>
dao代码
public List<Student> findByConditions(Student student) {
StringBuilder sql = new StringBuilder("select * from student where 1 = 1");
sql.append(" and cid = '"+student.getClz().getCid()+"'");
return findByConditions(sql.toString());
}
public List<Student> findByConditions(String sql) {
Session session =
HibernateSessionFactory.getSession();
List<Student> students =
session.createSQLQuery(sql).list();
return students;
}
action代码
public String findByConditions()
{
students = studentDao.findByConditions(student)
return "findByConditions";
} 展开
jsp代码, 可以动态取到下拉列表中的值
<frm action="user_findByConditions" method="post">
<select name="student">
<s:iterator value="students" var="v_student">
<option value="${v_student.clz.cid}">${v_student.clz.croom}</option>
</s:iterator>
</select>
<s:submit value="提交"></s:submit>
</form>
<s:iterator value="students" var="s">
<tr>
<td>${s.sid}</td>
<td>${s.name}</td>
<td>${s.age}</td>
</s:iterator>
dao代码
public List<Student> findByConditions(Student student) {
StringBuilder sql = new StringBuilder("select * from student where 1 = 1");
sql.append(" and cid = '"+student.getClz().getCid()+"'");
return findByConditions(sql.toString());
}
public List<Student> findByConditions(String sql) {
Session session =
HibernateSessionFactory.getSession();
List<Student> students =
session.createSQLQuery(sql).list();
return students;
}
action代码
public String findByConditions()
{
students = studentDao.findByConditions(student)
return "findByConditions";
} 展开
展开全部
findByConditions(student),想必你是用这个方法查询某班级所有的学生了,没有这么麻烦啊,在<option>标签中加一个name属性,name="${v_student.clz.cid},在action获取name,再把你前面那个方法的参数改成用班级id查询该班级的学生这样不是很清晰简单吗。
追问
恩恩 一开始学生的映射文件cid属性中的update和insert没设置成false 所以老实报找不到Cid
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dao建议从HibernateDaoSupport继承,然后通过getHibernateTemplate().get(Student.class, id)来检索出唯一的一个对象,当然,要用Student表中主键来检索
更多追问追答
追问
要是基础HibernateDaoSupport得加spring整合吧?
追答
Spring整合固然好,现在这个是潮流吧,不过不整合应该也能用的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
操作数据库的时候,最好用事务,不然的话数据可能流失,你试试是不是这个问题。
追问
查询貌似用不到事务吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你要找出问题出现在什么位置,是页面提交请求后在action中没有获得提交的数据,在数据库查询之后返回到action中查询的结果是不是正确的,返回到页面中是不是没有正常显示
用struts2框架就要好好利用struts2的标签,用struts2标签可以在页面中很方便的显示数据
<%@taglib prefix="s" uri="/struts-tags"%>
<form action="user_findByConditions" method="post">
<s:select name="student" list="students" listKey='clz.cid" liktValue="clz.croom"/>
<s:submit value="提交"></s:submit>
</form>
<table>
<s:iterator value="students" var="s">
<tr>
<td>${s.sid}</td>
<td>${s.name}</td>
<td>${s.age}</td>
</tr>
</s:iterator>
</table>
用struts2框架就要好好利用struts2的标签,用struts2标签可以在页面中很方便的显示数据
<%@taglib prefix="s" uri="/struts-tags"%>
<form action="user_findByConditions" method="post">
<s:select name="student" list="students" listKey='clz.cid" liktValue="clz.croom"/>
<s:submit value="提交"></s:submit>
</form>
<table>
<s:iterator value="students" var="s">
<tr>
<td>${s.sid}</td>
<td>${s.name}</td>
<td>${s.age}</td>
</tr>
</s:iterator>
</table>
追问
谢谢
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用ajax动态改变
更多追问追答
追问
ajax不怎么会。。。。 弱弱的问下ajax在工作中用的多吗?
追答
ajax在工作中用的比较多。当下拉列表改变的时候加一个改变事件,通过这个事件,我们使用ajax把班级的id传到后台做处理,在返回一个josn对象在把对象的值反馈给页面。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询