struts2在struts1的基础上结合了WebWork,进一步实现了MVC,简化了使用的纯JSP,Servlet,JavaBean实现MVC的难度性。
hibernate4引入持久化的理念实现Java Web对数据库的操作,而不需手工编写复杂的JDBC代码。
笔者近一阵整合这两个框架进行项目开发,遇到一个问题,即如何实现many-to-one级联数据表在JSP页面的输出。
下面提出我粗浅的解决方案:
显而易见,由hibernate完成遍历数据库的操作,封装在action的方法中。
ConsultJob.java
public class ConsultApp {
Session session = HibernateSessionFactory.getSession(); //获取Session对象
private String id; //ID值
private List elist; //教育背景List
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public List getElist(){
return elist;
}
public void setElist(List elist){
this.elist = elist;
}
/**
* @Description 获取全部简历信息
* @return 与result相关的字符串
*/
public String getWholeAppMessage(){
Person person = this.getPerson(id); //获取ID值对应的Person对象
String userID = person.getUser().getId(); //获取与Person对象级联的User对象的ID值
this.getWholeEduMessage(userID); //取得全部教育经历信息
return "success";
}
/**
* @Description 获取全部教育经历信息
* @param userID 级联ID
*/
private void getWholeEduMessage(String userID){
final String hql = "from Edu e inner join fetch e.user u where u.id= :userID";
Query query = session.createQuery(hql); //创建Query
query.setString("userID", userID);
elist = query.list(); //返回获取结果
}
/**
* @Description 获取用户个人信息
* @param id ID值
* @return 用户个人信息对象
*/
private Person getPerson(String ID){
Transaction trans = session.beginTransaction(); //开启一个事务
Person person = (Person) session.get(Person.class, ID); //获取指定的Person对象
trans.commit(); //提交事务
return person;
}
}
style="background-color:#e1eae6">
${personlist.name }
${personlist.sex }
${personlist.date }
${personlist.status }
${personlist.edu }
${personlist.pos }
身份证号码:${personlist.idCard }
电话:${personlist.tel }
邮箱:${personlist.mail }
住址:${personlist.address }
毕业时间:${edulist.endTime }
学校:${edulist.school }
专业:${edulist.major }
学位:${edulist.degree }
主修课程:${edulist.subject }
实习单位:${pralist.porgan }
实习岗位:${pralist.ppos }
实习内容:${pralist.pcontent }
实践单位:${shplist.sorgan }
实践职务:${shplist.sduty }
实践内容:${shplist.scontent }
技能证书:${skilist.skcontent }
自我评价:${sellist.secontent }
">更多