MVC框架 Struts
fmms
13年前
<p><strong><img title="MVC框架 Struts" border="0" alt="MVC框架 Struts" src="https://simg.open-open.com/show/163c087a0491ddbbb87ff8dd7f293fb1.gif" width="256" height="86" /><br /> Struts</strong> 是 Apache软件基金会(ASF)赞助的一个<span class="mw-redirect">开源</span>项目。它最初是 Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用 Java <span class="mw-redirect">Servlet</span>/JSP 技术,实现了基于Java EE <span class="mw-redirect">Web</span>应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。</p> <p>在 Struts 中,已经由一个名为 <em>ActionServlet</em> 的 Servlet 充当 <strong>控制器</strong>(<strong>Controller</strong>)的角色,根据描述模型、视图、控制器对应关系的 <em>struts-config.xml</em> 的配置文件,转发视图(<strong>View</strong>)的请求,组装响应数据模型(<strong>Model</strong>)。在 MVC 的 <strong>模型</strong>(<strong>Model</strong>)部分,经常划分为两个主要子系统(<em>系统的内部数据状态</em>与<em>改变数据状态的逻辑动作</em>),这两个概念子系统分别具体对应 Struts 里的 <em>ActionForm</em> 与 <em>Action</em> 两个需要继承实现超类。在这里,Struts 可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB), <span class="mw-redirect">JDBC</span> 与 <span class="new">JNDI</span>。在 Struts 的<strong>视图</strong>(<strong>View</strong>) 端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如 Velocity Templates,XSLT 等。通过应用 Struts 的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(<em>Action</em>)与 映射关系的配置文件(<em>struts-config.xml</em>)中。</p> <p>在 Java EE 的<span class="mw-redirect">Web</span>应用发展的初期,除了使用 Servlet 技术以外,普遍是在 JavaServer Pages (JSP)的源代码中,采用 HTML 与 Java 代码混合的方式进行开发。因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,都给前期开发与后期维护带来巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,Craig McClanahan 采用了 MVC 的设计模式开发Struts。后来该框架产品一度被认为是最广泛、最流行 JAVA 的 WEB 应用框架。</p> <p>2006年,<span class="new">WebWork</span> 与 Struts 这两个优秀的Java EE Web框架(Web <span class="new">Framework</span>〕的团体,决定合作共同开发一个新的,整合了 <span class="new">WebWork</span> 与 Struts 优点,并且更加优雅、扩展性更强的框架,命名为 “<strong>Struts 2</strong>”,原Struts的1.x 版本产品称为“Struts 1”。</p> <p>至此,Struts项目并行提供与维护两个主要版本的框架产品——Struts 1 与 Struts 2。<br /> <br /> </p> <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1323606978687" target="_blank">http://www.open-open.com/lib/view/home/1323606978687</a></p>