Struts 是 Apache软件基金会(ASF)赞助的一个开源项目。它最初是 Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用 Java Servlet/JSP 技术,实现了基于Java EE Web应用的 Model-View-Controller〔MVC〕设计模式的应用框架〔Web Framework〕,是 MVC 经典设计模式中的一个经典产品。
目录 |
在 Struts 中,已经由一个名为 ActionServlet 的 Servlet 充当 控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的 struts-config.xml 的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。在 MVC 的 模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应 Struts 里的 ActionForm 与 Action 两个需要继承实现超类。在这里,Struts 可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB), JDBC 与 JNDI。在 Struts 的视图(View) 端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如 Velocity Templates,XSLT 等。通过应用 Struts 的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。
在 Java EE 的Web应用发展的初期,除了使用 Servlet 技术以外,普遍是在 JavaServer Pages (JSP)的源代码中,采用 HTML 与 Java 代码混合的方式进行开发。因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,都给前期开发与后期维护带来巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,Craig McClanahan 采用了 MVC 的设计模式开发Struts。后来该框架产品一度被认为是最广泛、最流行 JAVA 的 WEB 应用框架。
2006年,WebWork 与 Struts 这两个优秀的Java EE Web框架(Web Framework〕的团体,决定合作共同开发一个新的,整合了 WebWork 与 Struts 优点,并且更加优雅、扩展性更强的框架,命名为 “Struts 2”,原Struts的1.x 版本产品称为“Struts 1”。
至此,Struts项目并行提供与维护两个主要版本的框架产品——Struts 1 与 Struts 2。
很多开发人员认为 Struts 目前尚不成熟,应用的成本较高。
|
查 • 论 • 编 • 历
|
|
|---|---|
| Java平台: | J2ME • J2SE • J2EE • Java Card |
| 升阳电脑主要技术: | Java (编程语言) • Java Development Kit • Java虚拟机 • Java Runtime Environment |
| 主要的第三方技术: | GNU Classpath • GNU Compiler for Java • Apache Harmony • Kaffe • Apache Struts • Spring Framework • Hibernate • Jboss application server |
| 历史: | Java version history • Criticism of Java • Java Community Process • 升阳电脑公司 • Free Java implementations |
| 语言特色: | Bytecode • Syntax • Applets • Servlets • JavaServer Pages • Web Start |
| 脚本语言: | Java Tcl · Jython · JRuby · BeanShell · Groovy · Judoscript · Sleep · Bean Scripting Framework · Yoix · Rhino |
|
查 • 论 • 编 • 历
|
|
|---|---|
| 顶级项目 | ActiveMQ · Ant · Apache HTTP Server · APR · Beehive · Camel · Cayenne · Cocoon · Commons · Derby · Directory · Excalibur · Felix · Forrest · Geronimo · Gump · Harmony · HiveMind · iBATIS · Jackrabbit · James · Lenya · Maven · mod_perl · MyFaces · OFBiz · OpenEJB · OpenJPA · POI · Roller · Shale · SpamAssassin · stdcxx · Struts · Tapestry · Tomcat · Velocity · Wicket · XMLBeans |
| 其他项目 | Jakarta项目 · Lucene · Apache XML · Apache Incubator |
| 子项目 | BCEL · BSF · Cactus · JMeter · Slide · Xerces · Batik · FOP · Log4j · XAP · River · ServiceMix · Log4Net · Abdera · Ivy · CXF · Hadoop · ODE |
| 许可证: Apache许可证 · 网站: http://apache.org/ | |
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History