以用户登录为例,说明Struts2和hibernate的整合。首先在MyEclipse8.0下新建一个web项目。注意编译器选择J2EE5.0版本。
我们先来增加Struts开发能力,在项目名上右击选择MyEclipse-增加Struts开发能力,这里选择Struts2.1版本。默认安装即可。再安装Hibernate开发能力,依然如上面的操作,选择Hibernate3.2版本,注意数据库连接部分,需要之前在数据库视图下设定好数据库连接,新建包来存放hibernate程序库,这里新建hibernate.example包。
运行当前系统测试能否正常工作,首先打开服务器,然后部署当前项目到Tomcat中,随后在浏览器输入当前地址如:http://192.168.195.54:8080/QX4/即可访问当前默认首页。
下面对Hibernate部分进行开发,切换到数据库视图下,找到需要编写程序的数据库表,这里是userinfo下的users表,右击选择hibernate反向工程,创建POJO对象和对应的映射文件。
下面开始编写业务逻辑部分,新建类oper.example.userview,方法showusers方法为:
Session session = HibernateSessionFactory.getSession();
Query query= session.createQuery("from Users");
String ret =doPrint(query);
return ret;
上述程序,通过Hibernate读取了数据库中的users表的所有记录并返回。
下面我们编写Struts部分,来实现登录功能的跳转。首先我们新建类struts.example.loginAction,新建name和password属性,并设定好getter和setter访问器。设定execute方法,该方法调用Users的hibernate类,来实现对数据库的操作。这些操作返回success字串或者error字串,这两个字串对应于struts.xml文件对应的结果页面。这个方法定义为:
public String execute(){
if(getName().equals("admin")&& getPassword().equals("123")){
return"success";
}else{
return"error";
}
}
而struts.xml文件为:
<struts>
<packagename="logincode" extends="struts-default">
<actionname="login" class="struts.example.LoginAction">
<resultname="success">/loginSuccess.jsp</result>
<resultname="error">/loginFail.jsp</result>
</action>
</package>
</struts>
这里仅仅通过简单的实例,说明登录过程在Struts的使用流程。在loginSuccess.jsp页面中,我们引入Userview对象,输出了其showuser方法的内容,代码为:
<%
userview uv = new userview();
out.println("aaaaa"+uv.showUsers());
%>
通过以上步骤,我们将Struts和hibernate结合起来了,在登录判断时,这里简单的使用硬编码方式,在实际中,我们会读取数据库并完成判断。谨以此说明,更复杂的程序就可以基于此进行开发了。
PS:tomcat 部署struts2.1必须删除xerces.jar文件 所有项目都得删除
参考
2. QX项目实战-10.基础架构实验一:传递消息、序列化对象和数据库封装