1,项目中用的Maven做项目管理工具,在pom.xml中的必须配置如下:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-junit-plugin</artifactId>
<version>2.1.8.1</version>
<scope>test</scope>
</dependency>
这个是使用struts2-junit-plugin插件中必须的,当然我说的是ssh2的项目,肯定也少不了struts2-spring-plugin.jar的依赖了,如下:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.1.8.1</version>
</dependency>
2,struts.xml中的配置(简单的贴一下):
<action name="person_*" class="personAction" method="{1}">
<result name="adminLoginSuccess">/admin_index.jsp</result>
<result name="personLoginSuccess">/go_person_index.jsp</result>
。。。。
</action>
3,application-action.xml中的配置如下:
<bean id="personAction" class="com.woyo.action.PersonAction">
<property name="personBo" ref="personBo"></property>
<property name="adminBo" ref="adminBo"></property>
<property name="groupBo" ref="groupBo"></property>
。。。配置你的bo层
</bean>
4,在PersonAction中:
public class PersonAction extends BaseAction implements ModelDriven<Person>,Preparable{
private static final long serialVersionUID = 1L;
private PersonBO personBo;
private AdminBO adminBo;
private GroupBO groupBo;
。。。其他的就不写了,还有getter和setter
public String login(){
if(type==1){
Person p =personBo.findByName(name);
if(p!=null){
if(this.password.equals(p.getPassword())){
ServletActionContext.getRequest().getSession().setAttribute("loginPerson", p);
//ActionContext.getContext().getSession().put("loginPerson", p);
return "personLoginSuccess";
}
}else{
this.setMessage("用户名和密码不正确!");
}
}else{
Admin admin=adminBo.findByName(name);
if(admin!=null){
if(this.password.equals(admin.getPassword())){
ServletActionContext.getRequest().getSession().setAttribute("loginAdmin", admin);
//context.getContext().getSession().put("loginAdmin", admin);
return "adminLoginSuccess";
}
}else{
this.setMessage("管理员用户名或者密码不正确!");
}
}
return "login";
}
什么是PersonAction的代码,你也看到了,我有个注释的一行,//ActionContext.getContext().getSession().put("loginPerson", p);就是它
单元测试的时候这个ActionContext.getContext().getSession()老返回为null
就改用这个ServletActionContext.getRequest().getSession().setAttribute("loginPerson", p)了。
5,在PersonActionTest中:
public class PersonActionTest extends StrutsSpringTestCase {
private PersonAction personAction;
private PersonBO personBo;
private AdminBO adminBo;
private GroupBO groupBo;
private HttpSession session;
/**
* 默认查找classpath下的applicationContext.xml文件
* 下面的这个重写方法可以不写
*/
protected String getContextLocations() {
return "file:src/main/resources/applicationContext.xml";
}
public void testLogin() {
//从applicationContext中取得实体对象
personBo =(PersonBO)applicationContext.getBean("personBo");
adminBo=(AdminBO)applicationContext.getBean("adminBo");
groupBo=(GroupBO)applicationContext.getBean("groupBo");
//从struts2的配置文件中取得的实例
ActionProxy proxy = getActionProxy("/person/person_login.action");
personAction = (PersonAction) proxy.getAction();
int type=2;
if(type==1){
//测试person的登陆
personAction.setName("bill");
personAction.setPassword("pass");
personAction.setType(type);
String result=personAction.login();
PersonActionTest.assertEquals("personLoginSuccess", result);
}else{
//测试admin的登陆
personAction.setType(type);
personAction.setName("admin");
personAction.setPassword("pass");
String result=personAction.login();
PersonActionTest.assertEquals("adminLoginSuccess", result);
}
}
分享到:
相关推荐
根据提供的文件信息,我们可以深入探讨如何为SSH2框架中的Action组件编写单元测试。这份文档将涵盖以下几个关键知识点:Maven依赖配置、Struts2配置、Spring集成以及具体的Action类实现和测试方法。 ### Maven依赖...
2. **集成测试**:测试不同组件之间的交互,例如Struts的Action到Service的调用,以及Service对Hibernate DAO的调用。这一步确保了各个组件在组合使用时能正常协同工作。 3. **功能测试**:模拟用户操作,验证整个...
SSH,即Struts2、Hibernate和Spring的组合,是Java Web开发中的一种经典框架集成,用于构建企业级的MVC(Model-View-Controller)应用。这个整合旨在提供一个高效、灵活且可扩展的开发环境,使开发者可以专注于业务...
- **考试创建与管理**:教师可以创建在线考试,设定考试时间、题量、难度等参数,Struts2的Action可以协调这部分逻辑。 - **考试过程**:学生在指定时间内进行答题,提交后系统自动评分,这需要结合JavaScript和...
以上就是SSH框架搭建的基本步骤,涉及到的主要知识点包括Maven项目管理、Struts2的配置与Action、Spring的IoC和AOP、Hibernate的ORM机制以及分页查询。理解并掌握这些内容,你就能自如地构建基于SSH的Java Web应用。
SSH框架,全称为Struts2、Spring和Hibernate的组合,是一种经典的Java web开发框架。在SSH框架中,文件上传功能是常见的需求,特别是在处理用户提交的表单数据时,例如图片、文档或者其他多媒体文件的上传。这个...
在SSH项目中,Spring管理着Struts2的Action实例,以及数据库连接和其他服务。 3. **Hibernate**:Hibernate是一个对象关系映射(ORM)工具,它简化了数据库操作。通过Hibernate,开发者可以使用Java对象直接操作...
在实际项目中,Module2可能包含相关的源码、配置文件和测试案例,帮助开发者深入理解SSH2的整合和应用。通过对这些模块的学习和实践,开发者可以掌握如何构建基于SSH2的J2EE应用程序,提高开发效率,同时享受到SSH2...
在SSH2项目中,Spring管理着所有Bean,包括DAO(数据访问对象)、Service(业务逻辑服务)以及Action类。通过Spring的AOP(面向切面编程),可以实现事务管理,确保数据库操作的原子性和一致性。 3. **Hibernate**...
8. **测试**:编写JUnit测试用例,对Action、Service和DAO进行单元测试,确保每个组件的功能正确无误。 通过这个SSH2项目样例,你可以深入理解三大框架的协同工作原理,学习如何在实际项目中有效地组织代码,以及...
在SSH整合中,Struts2负责处理用户交互,将用户请求映射到特定的Action,然后调用Spring管理的业务服务。 Hibernate则是一个对象关系映射(ORM)框架,它将数据库操作转换为对Java对象的操作,降低了数据库操作的...
"SSH2最小系统"是指使用最精简的依赖库来构建一个基于Spring和Struts2(这里用的是缩写SSH,分别代表Spring、Struts2和Hibernate)的应用。这个项目对于初学者来说是一个很好的起点,它能帮助理解这三个框架如何协同...
9. **测试**:SSH2项目通常包含JUnit测试,用于验证业务逻辑的正确性和持久化层的数据操作。 通过学习和实践SSH2项目,初学者可以深入理解这三大框架的集成使用,以及Java Web开发的基本流程,为后续的复杂项目开发...
**JAVA SSH2框架详解** SSH2框架,全称为Struts2、Spring和Hibernate的集成框架,是Java Web开发中常用的一种高效、稳定的架构方案。它将MVC模式的Struts2、依赖注入与面向切面编程的Spring以及持久层框架Hibernate...
SSH2框架,全称为Struts2、Spring和Hibernate2的集成框架,是Java Web开发中的一个常用技术栈,主要用于构建高效、可维护性高的企业级应用程序。本详细图解将带你一步步了解如何搭建SSH2框架,并实现一个简单的注册...
SSH2项目练习主要涉及到的是Java Web开发中的Spring、Struts2和Hibernate这三大框架的集成应用。这三大框架是Java企业级开发中的常用工具,它们分别负责不同的职责:Spring作为应用上下文和依赖注入容器,Struts2...
SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java开发领域中常用的Web应用开发框架。这个框架结合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面...
在SSH整合中,例如,使用@Controller注解标记一个类为Spring的控制器,@Service注解标记业务服务,@Repository注解标记数据访问层,Struts2的@Action注解定义动作映射。Hibernate中,@Entity注解表示数据库实体,@...
在完成上述步骤后,开发者可以进行整合测试,验证SSH框架是否能协同工作,如请求能否正确路由到Action,Service是否正常执行,数据是否准确显示在视图上。如果一切顺利,"SSH框架整合测试通过"表示项目的架构搭建...
3. **Struts2框架**(2.3.4版本):Struts2是一个基于MVC设计模式的Web应用框架,用于构建可维护、可扩展和易于测试的Java Web应用。Struts2.3.4版本增强了插件架构,提高了性能,提供了更多UI组件,同时支持RESTful...