在基于SSH的架构中,基本的流程是这样的:
1、展现层通过struts收集数据
2、在action中调用服务层业务接口,实现业务逻辑处理
(这里说的是struts1)
在这样的过程中始终存在如下很鸡肋的问题:
-------------------------------------------------------------
1、struts action变得很贫血。
由于业务逻辑后置,用了action没有带来实实在在的好处,反而增加了交互的环节。典型的action使用mapping dispatch模式,每个action方法只有3行代码 :
/**
* 获得权限树,转向权限树页面
*/
public ActionForward getFunctionTree(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws StaffException {
Collection tree = helper.getFunctionRootTree();
request.setAttribute("tree", tree);
return mapping.findForward("tree");
}
public ActionForward getRoles(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws StaffException {
Collection roles = helper.getAllRoles();
request.setAttribute("roles", roles);
return (mapping.findForward("success"));
}
2、struts actionform也贫血,而且粒度很难把握
由于form中的属性往往和业务层的Model对象存在相似性,所以在form中定义model的引用是常见的办法:
import com.surekam.platform.staff.model.Department;
import org.apache.struts.action.ActionForm;
public class DeptForm extends ActionForm {
/**
* 部门信息
*/
private Department department = new Department();
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
}
如果这么做,form的价值在那里?? 唯一的必要性可能就是struts的表单标签要求必须有form,这不是很鸡肋吗?
另外实战中为了节省form的数量,往往会在多个操作中共享form类,结果是造成了form完全成了大杂烩,完全不可读!!
--------------------------------------------------------
那么从架构的角度来看,这很明显是一个共性的问题。望各位仁者见仁,将大家在实战中的经验共享一下,一起探讨解决方案。
我们的解决办法是对struts进行了一定得封装和扩展,有一个所谓的Nice Struts的组件来搞定这个问题。稍后会提供具体实现出来。
ENDING----------------------------------------------------------------------------------------------------------------------------------
分享到:
相关推荐
SSH 架构(Struts + Spring + Hibernate)有很多优点,例如: * Struts 提供了一个灵活的 MVC 框架,能够方便地处理用户请求。 * Spring 提供了一个统一的 IoC 容器,能够方便地管理应用程序中的所有组件。 * ...
在Struts中,Action类作为控制器,处理请求并调用业务逻辑,然后将结果转发给相应的JSP页面展示。 2. **Spring**:Spring框架主要提供依赖注入和AOP功能,使得组件之间的依赖关系可以通过配置文件来管理,而不是硬...
在实际开发中,一个SSH项目会包含各种配置文件(如struts-config.xml、hibernate.cfg.xml)、Java源代码(Action类、DAO类、Service类等)、JSP页面以及数据库脚本等。开发者通常会利用IDE(如Eclipse或IntelliJ ...
在SSH架构中,Struts主要负责处理用户界面部分,即表示层。 1. **核心组件**: - **ActionServlet**:作为控制器的角色,处理HTTP请求并将控制权转移给相应的Action。 - **Action**:业务逻辑的主要承载者,执行...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的MVC架构。本项目涉及的核心知识点是使用Struts2处理表单提交,Hibernate进行数据持久化,以及图片上传的相关技术。下面将详细介绍这些内容...
在Java中,SSH架构的集成使得开发者可以利用Struts的MVC结构,Spring的IoC和AOP特性,以及Hibernate的ORM能力,构建出高效且易于维护的系统。SSH的jar包集通常还会包含其他辅助库,如Apache Commons、LOG4J等,以...
Java SSH架构,即Struts + Spring + Hibernate(或MyBatis)的组合,是Java Web开发中非常流行的一种MVC框架模式。它将业务逻辑、数据访问、用户界面三者很好地分离,提高了代码的可维护性和系统的扩展性。 - **...
SSH(Spring、Struts2、Hibernate)是Java开发中常用的一种技术栈,它结合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)、Struts2作为MVC(Model-View-...
在SSH架构中,Struts2与Spring的结合可以实现Action的依赖注入,使得业务逻辑更易维护和扩展。Spring管理的Hibernate Session可以在多个Action之间共享,减少了数据库连接的开销。具体来说,Struts2将用户的请求转发...
SSH架构,全称为Struts+Spring+Hibernate,是Java Web开发中的一个经典组合,用于构建高效、可维护的Web应用程序。这个"基于SSH架构简单的论坛系统"是一个利用SSH框架技术实现的在线讨论平台,旨在提供用户交流思想...
SSH是Java开发中的一种经典企业级应用框架组合,由Struts、Spring和Hibernate三个开源项目组成,常被称为“轻量级”企业级开发解决方案。这个"ssh.rar"压缩包文件包含了一个基于Struts1.2、Spring2.0和Hibernate3.0...
在SSH架构中,Spring还提供了与Struts和Hibernate的集成接口,使得各组件之间的交互更为顺畅。 Struts是MVC(Model-View-Controller)设计模式的一个实现,主要处理用户界面和业务逻辑的交互。它接收用户请求,调度...
SSH架构是一种广泛应用于Java EE平台的开源开发框架,由Struts、Spring和Hibernate三个组件组合而成,主要用于构建高效、可重用的企业级应用程序。本文将详细介绍SSH架构的总体描述、框架集成规范、组件集成规范、包...
SSH架构融合实例主要涉及到的是Java开发中的三种核心技术:Spring、Struts和Hibernate,这三者合称为SSH。SSH是企业级应用开发中的一个经典组合,主要用于构建基于Java的Web应用程序。 Spring框架是SSH架构的核心,...
该资源中包括SSH框架整合中struts2框架所需要的所有jar包。包括: (1)struts-2.3.24\apps\struts2-blank\WEB-INF\lib\*.jar(Struts2需要的所有jar包) (2)struts2-spring-plugin-2.3.24.jar(Struts2整合Spring...
在BBS系统中,Spring管理着所有的bean,包括数据访问对象(DAO)、服务层对象以及Struts中的Action。此外,Spring还提供了事务管理,确保数据操作的原子性和一致性。 3. **Hibernate**:Hibernate是一个对象关系...
8. **异常处理**:学习如何在Struts中优雅地处理和呈现异常信息。 9. **国际化和本地化**:可能涉及到多语言支持,学习如何配置资源文件来实现这一点。 通过深入研究这个"ssh_TestStruts.rar"压缩包,你可以获得...
### 手把手SSH架构搭建详解 #### 一、概述 SSH框架是指Struts + Spring + Hibernate这三种技术的组合,是Java Web开发中非常流行的一种轻量级开发框架。本篇将详细介绍如何在MyEclipse 10环境下搭建SSH框架,并进行...
在讨论 SSH 架构时,我们需要了解到 Struts、Spring 和 Hibernate 三个流行的开源框架,它们分别用于表现层、业务层和持久层。这些框架能够帮助我们建立一个松耦合的架构,使得不同的层次能够彼此独立地工作。 在...