Struts2与Spring、Hibernate三者整合的过程示例
来源:互联网 发布:淘宝卖家蚂蚁花呗条件 编辑:程序博客网 时间:2024/05/22 04:32
示例工具:MyEclipse 7.0、Tomcat 6.0、MySql 步骤: 1.创建一个WEB工程,命名为BookShop(名字自己取,此处为示例工程名); 2.导入struts2的核心jar包,也就是在WEB-INF下的lib文件夹中放入jar包文件,如下图(图中jar包为示例版本): 3.加载spring,选中工程名,右击并选择【MyEclipse】选项下的【Add Spring Capabilities...】(或者在工具栏中选择【MyEclipse】下的【Add Spring Capabilities...】),在弹出的对话框中进行如下图所示操作: 点击【Next】,点击Folder文本框后的【Browse】,在弹出对话框中选择spring配置文件存储位置为WEB-INF文件夹,如下图所示: 4.加载Hibernate,选择【MyEclipse】下的【Add Hibernate Capabilities...】,在弹出对话框中进行如下图所示操作: 5.创建struts.xml文件,在src包下新建一个struts.xml文件,该文件内容如下: <!DOCTYPE struts PUBLIC <struts> <!--下述语句是将struts2交给spring管理 --> <constant name="struts.objectFactory" value="spring" /> <!--导入struts-default.xml文件 --> <include file="struts-default.xml"></include> <!--将action内容放在package元素下,package元素的name值与extends值可以使用默认值,如下所示 --> <package name="default" extends="struts-default"> <!--例如与用户登录相关的LoginAction,配置如下,其中,class值与applicationContext.xml文件中该action的id值相对应,name值作为标识--> <action name="loginAction" class="LoginAction"> <!--result元素设置页面跳转值,其中name值为目标页面的字符串标识,如下,登录失败时回到login.jsp页面,成功时,转向success.jsp页面 --> <result name="fail">/login.jsp </result> <result name="success">/success.jsp</result> </action> </package> </struts> 6.配置web.xml文件,其内容如下: <?xml version="1.0" encoding="UTF-8"?> <context-param> <filter> <filter-mapping> <welcome-file-list> <listener> </web-app> 7.反向生成实体类文件 在src包下新建一个entity包,将前面数据源xiaoqi所示数据库bookshop中的user表反向生成Hibernate实体类文件。 8.创建数据操作文件 在src包下创建dao包,在该包下新建类文件PersonManage.java,其内容如下所示: package dao; import java.util.*; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import entity.*; public class PersonManage extends HibernateDaoSupport { //普通用户登录验证 } 9.创建Action 在src包下新建一个包,名为"com.xiaoqi.action"(名字仅为示例,只写一个com也可以,示例写法是采取struts中的action包名写法),在该包下新建一个action类LoginAction.java,其内容如下: package com.xiaoqi.action; import com.opensymphony.xwork2.ActionSupport; import dao.PersonManage; public class LoginAction extends ActionSupport{ private String userName; 10.创建页面,创建登录页面login.jsp,内容如下: <%@ page language="java" pageEncoding="gb2312"%> <!-- 导入struts2标签库 --> <html> <div id="login"> </center> 页面中,先导入struts2标签库,用来创建form表单。form表单提交给与登录相关的LoginAction.java文件,而LoginAction.java在struts.xml文件中相应的name值为"loginAction”,所以这里的action值为"loginAction"。至于用户名文本框与密码文本框的name值则与LoginAction.java文件中的userName与userPassword完全匹配。 11.配置applicationContext.xml文件: <?xml version="1.0" encoding="UTF-8"?> <!-- 以下为数据源配置,自动生成 --> <bean id="candy" class="org.apache.commons.dbcp.BasicDataSource"> <!-- 以下为sessionFactory配置,自动生成 --> <bean id="sessionFactory" <!-- 配置PersonManage.java类文件 --> <bean id="personManage" class="dao.PersonManage" abstract="false" <!-- 配置LoginAction.java类文件 --> <bean id="LoginAction" class="com.xiaoqi.action.LoginAction" > <property name="personManage">
点击【OK】后,再点击【Finish】完成。至此,已经完成加载spring,在WEB-INF文件夹下已经生成了配置文件applicationContext.xml。
点击【Next】后,选择Existing Spring configuration file单选框,在SessionFactory Id文本框中填入"sessionFactory",如下图所示 :
点击【Next】,进行如下图所示操作:
该操作中,只需在Bean Id文本框中输入一个Id名,作为数据库源的代用名,意义不大。然后在DB Driver下拉列表中,选择MyEclipse中创建好的数据库源xiaoqi,其他信息将自动填写。点击【Next】,在弹出对话框中去掉Create SessionFactory class?复选框,不创建该类,点击【Finish】完成(创建过程中,加载的jar包文件可能有重复,所以这个时候如果提示有某些jar包重复,问全部保存【Keep Exiting】,还是替换掉【Replace】,可以选择替换掉【Replace】)。
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
@SuppressWarnings("unchecked")
public boolean checkUser(String userName,String userPassword){
boolean flag = false;
String hql = "from User as user where user.userName = '"+userName+"' and user.userPassword = '"+userPassword+"'";
List<User> userList = this.getHibernateTemplate().find(hql);
if(userList.size()>0){
flag = true;
}
return flag;
}
private String userPassword;
private PersonManage personManage;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public void setPersonManage(PersonManage personManage) {
this.personManage = personManage;
}
public String execute(){
String page = "fail";
boolean flag = false;
flag = personManage.checkUser(userName, userPassword);
if(flag){
page = "success";
}
return page;
}
}
<%@taglib uri="/struts-tags" prefix="s"%>
<head>
<title>用户登录</title>
</head>
<body>
<center>
<s:form action="loginAction">
<s:textfield label="用户名" name="userName"></s:textfield>
<s:password label="密码" name="userPassword"></s:password>
<s:submit value="登录"></s:submit>
</s:form>
</div>
</body>
</html>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/bookstore">
</property>
<property name="username" value="root"></property>
<property name="password" value="sa"></property>
</bean>
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="candy" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>entity/User.hbm.xml</value></list>
</property></bean>
lazy-init="default" autowire="default" dependency-check="default">
<property name="sessionFactory" >
<ref local="sessionFactory"/>
</property>
</bean>
<ref bean="personManage" />
</property>
</beans>
- Struts2与Spring、Hibernate三者整合的过程示例
- Struts2与Spring、Hibernate三者整合的过程示例
- Struts2与Spring、Hibernate三者整合的过程示例
- Struts2 Spring hibernate 整合示例
- Struts2+Hibernate+Spring 整合示例
- Struts2 Spring hibernate 整合示例 .
- Struts2+Hibernate+Spring 整合示例
- Struts2+Spring+Hibernate整合示例
- struts2与spring的整合示例
- Struts2+Hibernate+Spring整合过程
- spring 与JPA/Hibernate的整合示例
- spring 学习之三(spring 与hibernate, struts2整合)
- Spring与Struts2以及Hibernate的整合
- Struts2与Spring、Hibernate整合
- struts2+spring+hibernate整合(示例)
- (三)spring与Hibernate的整合
- Spring(三)Spring整合Struts2、Hibernate
- struts2+hibernate+spring整合过程中遇到的问题
- java 调用C++ 动态链接库
- aix上如何限制指定ip地址通过telnet连接
- 网上常用免费WebServices集合
- [Introduction to Game Symphony of Sky][DZ Group]
- jdbc连接数据库大全(转载)
- Struts2与Spring、Hibernate三者整合的过程示例
- iphone4国行终于来了
- 在SQLServer2000和2005中怎样探测表碎片
- Fedora 下如何修改ip地址
- Oracle managing undo data
- S3C2440中断控制器一贴OK!!!
- 脱胎换骨 WinXP优化精湛10招
- group、grouping、rollup、cube的用法和区别(本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/junmail/archive/2006/12/26/1463132.aspx)
- Visual Basic LINQ入门