考一下,拷贝一个过来修改一下即可。只是这里的主要是在于设计 ,设计好有什么formbean,什么action,他们的关系,等等问题。一个好的设计绝对能为后期节省大量的返工可能性。struts有一本《struts on action》,绝对是学习struts的经典书籍,我手上有翻译的前8章,有需要的可以联系我。
我们这里不详细说明各个配置,只讲struts 和hibernate 合作的过程。
一个action 有一个 execute 方法,当然也可以用 perform方法,不过 perform 方法 在struts1.1已经不推荐使用了,而使用了更强大的execute()方法。 package net.seerlog.action;
//导入所有用的到的包
import java.util.List;
import net.seerlog.po.*;
import net.seerlog.vo.*;
import net.seerlog.util.*;
import net.sf.hibernate.*;
import org.apache.struts.action.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import javax.servlet.ServletException;
public class IndexAction extends Action{
//action的主体方法 execute ,注意要抛出异常
public ActionForward execute (ActionMapping mapping,ActionForm form,HttpServletRequest req,
HttpServletResponse res) throws IOException, ServletException{
try{
//开启会话
Session session = Hi.getSession();
Transaction tx= session.beginTransaction();
//查询
Query q = session.createQuery("from Topic as topic order by topic.id desc");
q.setFirstResult(0);
q.setMaxResults(5);
List newTopicList = q.list();
NewTopicList ntlBean=new NewTopicList();
ntlBean.setList(newTopicList);
req.setAttribute("newtopiclist",ntlBean);
//事务提交,关闭session
tx.commit();
Hi.closeSession();
//捕获异常
}catch(HibernateException e){
Log.error(e.toString()); //日志记录
}
//返回一个 actionForward 对象
return mapping.findForward("index");
}
}
以上就是 struts hibernate协同工作的全部内容了,这篇文章只能让你了解整个过程,这里的例子不能作为实现的学习例子。 |