struts2+spring+hibernate整合(示例)

本文介绍了一个使用Struts2与Hibernate框架整合的例子,包括Userinfo数据Bean定义、Hibernate映射文件、DAO及其实现、Service层、Struts2 Action及Spring配置等关键组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据bean:

public class Userinfo {
	private int userid;
	private String username;
	private String password;
	public int getUserid() {
		return userid;
	}
	public void setUserid(int userid) {
		this.userid = userid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Userinfo(int userid, String username, String password) {
		super();
		this.userid = userid;
		this.username = username;
		this.password = password;
	}
	public Userinfo() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	
}
userinfo.hbm.xml配置:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
	<!-- 将配置文件当中的configuration全部改成mapping -->
<hibernate-mapping>
	<class name="com.mth.userinfo.Userinfo" table="test">
		<id name="userid">
			<generator class="sequence"></generator>
		</id>
		<property name="username"></property>
		<property name="password"></property>
	</class>
</hibernate-mapping>



Dao层:

public interface IUserDao {
	public void add(Userinfo user);
}

DaoImpl:

public class IUserDaoImpl extends HibernateDaoSupport implements IUserDao {

	public void add(Userinfo user) {
		System.out.println("存储");
		this.getHibernateTemplate().save(user);
	}

}
Action:
public class LoginAction extends ActionSupport implements ModelDriven<Userinfo>{

	private Service ser;
	private Userinfo user;

	public Userinfo getUser() {
		return user;
	}

	public void setUser(Userinfo user) {
		this.user = user;
	}

	public Service getSer() {
		return ser;
	}

	public void setSer(Service ser) {
		this.ser = ser;
	}
	//获得前台form表单数据
	public Userinfo getModel() {
		// TODO Auto-generated method stub
		return user;
	}

	@Override
	public String execute() throws Exception {
		System.out.println("action");
		System.out.println(user.getUsername() + user.getPassword());
		System.out.println(ser);
		ser.addUser(user);
		return SUCCESS;
	}


}
Service:

public class Service {
	private IUserDaoImpl daoImpl;

	public IUserDaoImpl getDaoImpl() {
		return daoImpl;
	}

	public void setDaoImpl(IUserDaoImpl daoImpl) {
		this.daoImpl = daoImpl;
	}

	public void addUser(Userinfo user) {
		daoImpl.add(user);
	};

}

struts.xml配置:

<struts>
	<constant name="struts.objectFactory" value="spring"></constant>
	
	<package name="login"  extends="struts-default" namespace="/">
		<action name="login" class="login">
			<result>/index.jsp</result>
		</action>
	</package>
</struts>    

applicationContext.xml配置:

<bean id="userDaoImpl" class="com.mth.Impl.IUserDaoImpl">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	<bean id="servrice" class="com.mth.service.Service">
		<property name="daoImpl" ref="userDaoImpl"></property>
	</bean>

	<!-- 配置Action -->
	<bean name="login" class="com.mth.loginaction.LoginAction">
		<property name="ser" ref="servrice"></property>
	</bean>


web.xml配置:
<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>

	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>*.action</url-pattern>
	</filter-mapping>




SSH整合示例(详情见我博客专栏)之前的博客我们总结了spring基础、spring分别整合struts2hibernate、mybatis等,今天我们来同时整合strutsspringhibernate,也就是所谓的 ssh 。 整合流程: 1 首先整合springhibernate,这次我们在spring 中配置bean使用注解的方式 ,hibernate实体映射关系也使用注解的方式,配置完毕后用简单方法测试下hibernate是否整合成功。 a 加入支持:添加 spring核心包、hibernate 3.6 包、 spring整合hibernate包 , 在src下建立applicationContext.xml (先建立src下便于测试hibernate)。 b 编写实体类,加入hibernate注解,编写方法类测试类,在applicationContext.xml中添加hibernate模板类配置以及包扫描语句 。在类中添加spring bean注解。 c 测试类中 主动解析applicationContext.xml ,获取bean 执行dao层方法进行测试 2struts2 整合进去, 这次在struts.xml中我们使用通配符的方式配置action。 a 加入支持 : 添加struts2.3.15 必需包 以及 struts json包(ajax要用到),spring整合struts2包,spring web 包,在src目录下建立struts.xml,复制头文件进去。将applicationContext.xml移到WEB-INF目录下。web容器中(web.xml)中添加struts2 filter以及spring 监听器。 b 在struts.xml中添加action,使用通配符的方式 , 注意这里和单独struts2不同的地方: class属性指向的是bean 的 id ,这里我们配置bean采用spring ioc注解的方式, 所以默认的bean的id 为 类名(首字母小写) c 编写action类、页面进行测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值