首先到官方网站下载struts-2.0.6,将其lib下相应的包拷贝到项目中去
我的开发环境是eclipse3.2+tomcat5.5.20+JDK1.5.06+myeclipse5.1
基本布局如附件,以下是web.xml的配置
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>encodingFilter</filter-name>//解决中文问题
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener//加载spring,但同时也需要在struts.properties中配置一下,见下面
</listener-class>
</listener>
</web-app>
struts.properties:
struts.objectFactory = spring//表示使用spring
在struts.xml中
<include file="struts-default.xml"/>
<package name="default" extends="struts-default">
<interceptors>
<interceptor-stack name="s2Stack">//l拦截器堆栈
<interceptor-ref name="model-driven"/>//模型驱动
<interceptor-ref name="params"/>
</interceptor-stack>
</interceptors>
<action name="login" class="login.LoginAction" method="baocun">//在action中我自己定义的方法,页可以使用默认的execute方法。
<result name="success">/success.jsp</result>//转到成功页面
<result name="input">/fail.jsp</result>
<interceptor-ref name="s2Stack"/>
</action>
</package>
在login.jsp中为
<body>
<form action="login.action" method="post">
用户名:
<input type="text" name="name" />//因为我们用了模型驱动,所以就不用如xx.name的形式了但首先的建立一个类logininfo.java,如下:
<br />
密码:
<input type="password" name="password">
<br />
<input type="submit" value="提交" name="sub" />
<input type="reset" value="重置" name="res" />
</form>
</body>
</html>
logininfo.java:
public class LoginInfo {//主要用于取得页面输入的值,一会在action中还会用到。
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
我建立了一个service,调用DAO去执行数据库操作。
package service;
import com.yourcompany.Admin;
import com.yourcompany.AdminDAO;;
public class LoginService {
private AdminDAO adminDAO;
public AdminDAO getAdminDAO() {
return adminDAO;
}
public void setAdminDAO(AdminDAO adminDAO) {
this.adminDAO = adminDAO;
}
public void saveinfo(Admin admin){
adminDAO.save(admin);
}
}
hibernate创建的DAO相信大家都会了,我就不粘贴上来了。
LoginAction如下:
import com.yourcompany.Admin;
import service.LoginService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.yourcompany.LoginInfo;
public class LoginAction extends ActionSupport implements ModelDriven{//这里继承ActionSupport 同事实现ModelDriven
/**
*
*/
private static final long serialVersionUID = -2144138760339549940L;
LoginService loginService;
LoginInfo logininfo=new LoginInfo();
public String baocun() throws Exception{//对应与struts.xml中的method方法
Admin admin=new Admin();
System.out.println(logininfo.getName());
admin.setName(logininfo.getName());
admin.setPassword(logininfo.getPassword());
loginService.saveinfo(admin);//保存前台的数据,插入数据库
return SUCCESS;
}
public Object getModel() {
// TODO 自动生成方法存根
return logininfo;//这里就用到了logininfo.java
}
public LoginService getLoginService() {
return loginService;
}
public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}
}
一个struts2+spring+hibernate的简单整合例子完成了,有不对的地方还请大家一起交流。
最后说一下官方说可以运行与JDK1.4上,本人已经测试过,可以运行,只需将j4包下的文件拷贝到lib下,就可以了,但要注意如果用JDK1.5了,不要把j4下包和用于1.5的包都拷贝到项目lib下,会冲突,本人第一次写博客,希望大家一起交流。
- 大小: 18.2 KB
分享到:
- 2007-04-24 16:19
- 浏览 3217
- 评论(0)
- 论坛回复 / 浏览 (0 / 8677)
- 查看更多
相关推荐
6. **模型-视图-控制器**:观察Struts2如何与Spring和Hibernate协作,完成MVC设计模式的实现。 7. **实战演练**:通过实际运行例子,理解SSH框架下,请求如何从视图层流转到业务层,再到数据访问层,最后返回响应。 ...
SSH整合,即Struts2、Hibernate3和Spring2的集成,是Java Web开发中的常见模式,用于构建高效、模块化的应用程序。在这个小例子中,这三个框架的协同工作使得开发人员能够轻松实现数据持久化、控制层逻辑和业务层...
总结来说,这个例子展示了如何整合Struts2、Spring和Hibernate这三个框架,形成一个完整的Java Web应用程序。通过Struts2处理用户请求,Spring管理组件和事务,Hibernate处理数据库操作,实现了模型、视图和控制器的...
5. **WEB-INF/lib** - 包含了项目依赖的第三方库,如Struts2、Hibernate、Spring、Oracle JDBC驱动等。 6. **jsp** 或 **WebContent** - 视图层的JSP文件,用于展示数据。 学习这个示例,你可以了解如何整合这三个...
在Struts2和Spring的环境中,Hibernate可以通过Spring的数据访问抽象进一步整合,使得事务管理和数据库操作更加便捷和统一。 结合这三个框架,我们可以创建一个高效的三层架构:Struts2负责前端请求的接收和处理,...
这是一个基于Java技术栈的Web开发项目实例,使用了Spring 3.1、Hibernate 4和Struts2这三个核心框架,并且采用了注解方式进行配置。这个项目例子旨在帮助开发者理解如何在实际开发中整合这三个框架,实现MVC模式的...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自处理不同的层面:Struts2负责MVC(模型-视图-控制器)架构的实现,Spring提供了依赖注入和事务管理等功能,而Hibernate则作为对象关系映射工具,...
4. 在IDE中导入所有必要的库,包括Struts、Hibernate、Spring和JDBC驱动。 5. 启动服务器,访问预设的URL,查看留言板是否正常工作。 这个例子适合初学者理解和学习SSH框架的整合,同时也为有经验的开发者提供了...
标题中的“spring+hibernate+struts例子”是指一个基于Java Web开发的示例项目,它整合了Spring、Hibernate和Struts这三个流行的开源框架。这个项目旨在展示如何在实际应用中有效地集成这三个技术,以实现数据持久化...
在Java Web开发中,Spring、Hibernate和Struts1是经典的MVC(Model-View-Controller)框架组合,常用于构建企业级应用。这三个框架的整合能够实现数据持久化、业务逻辑处理和用户界面的分离,提高开发效率和代码可...
JSF与Spring和Hibernate的整合,可以利用JSF的组件库和事件驱动模型来创建用户界面,通过Spring进行业务逻辑处理,再由Hibernate进行数据操作。 在设计Web应用程序时,通常会先收集功能需求,然后进行用例分析,...
- **Spring整合**: 在Spring配置文件中定义Struts和Hibernate相关的Bean,实现框架间的无缝衔接。 - **事务管理**: 使用Spring的事务管理器,确保数据库操作的一致性和完整性。 - **对象关系映射**: Hibernate...
在这个例子中,"一个简单的struts,spring,hibernate例子" 整合了这三个框架,展示了如何将它们集成到同一个项目中。这通常涉及以下几个步骤: 1. **Struts 配置**:Struts 通过配置文件(如struts.xml)来定义...
2. **模型驱动**:Spring Struts2集成可以实现模型驱动,将Action中的业务数据直接绑定到Spring的Bean上,简化了数据处理。 3. **事务管理**:Spring的事务管理功能可以无缝集成到Struts2中,确保在处理业务逻辑时...
这个名为"SS2HTEST"的压缩包文件,很可能包含了一个完整的Web项目,演示了如何将Struts2、Spring和Hibernate整合,并与SQL Server 2005数据库协同工作,实现一个基本的登录功能。以下是对这些技术的详细解释: 1. *...
3. **引入依赖**:在pom.xml或build.gradle文件中添加SSH2相关的依赖,包括Spring、Struts2、Hibernate、MySQL驱动等。 4. **配置Spring**:编写spring配置文件,如`applicationContext.xml`,配置数据源、...
8. **插件系统**:Struts2拥有强大的插件体系,可以方便地集成其他框架如Hibernate、Spring等,提供对RESTful风格的支持、AJAX交互等功能。 9. **测试与调试**:Struts2提供了JUnit测试支持,使得单元测试和集成...