基础理论
Struts是做什么的
Struts是MVC中的控制层框架
Struts做的流程
actionform/href---》action---》actionservice
搭建Struts框架
1,添加Struts需要的包到项目中去
2,添加Struts.xml(dtd)
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
3,配置Struts过滤器
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
4,编写action类 进行控制
5,通过action类返回的结果来找配置文件中的跳转界面
Struts.xml的编写
1,两个action之间的跳转
两个Action之间的跳转需要在一个Action中设置result中的type属性 如: <action name="LoginAction" class="com.action.LoginAction"> <result name="success" type="redirectAction">UserListAction.action</result> </action>
注:result的type有chain、dispatcher、redirect
默认的是dispatcher 用于页面转发,页面跳转过程一直是同一个线程,Action中的数据一直保存在。
chain用于把相关的几个action连接起来,共同完成一个功能。
Xml代码:
<action name="step1" class="test.Step1Action">
<result name="success" type="chain">step2.action</result>
</action>
<action name="step2" class="test.Step2Action">
<result name="success">finish.jsp</result>
</action>
处于chain中的action属于同一个http请求,共享一个ActionContext
redirect 类型用于重定向到一个页面,另一个action或一个网址。
Xml代码:
<result name="success" type="redirect">aaa.jsp</result>
<result name="success" type="redirect">bbb.action</result>
<result name="success" type="redirect">www.baidu.com</result>
缺点:redirect把一个http返回码(SUCCESS)以及返回的页面位置一起重新发给web服务器,容纳后由web服务器产生一个新的HTTP请求,就会产生一个新的线程,保存在原来Action执行的线程中的数据就无法访问。
所以,result需要包含Action的数据,那么redirect不是一个可行的办法。因为新的HTTP请求时在Servlet容器的新的线程中处理的,ActionContext中的所有状态都不会存在。
处理方法:
(方法一):
<result name="topic" type="redirect">/topicAction!findTopics.do?topicId=${topicId}</result>
(方法二):
<result name="topic" type="redirect-action">
<param name="actionName">findTopics</param>
<param name="topicId">${topicId}</param>
</result>
相关推荐
### Struts2基础面试题详解 #### 1. Struts2的核心控制器及其性质 - **Struts1的核心控制器**:在Struts1框架中,核心控制器是`ActionServlet`,这是一个实现了`HttpServlet`接口的类,因此本质上是一个Servlet。 ...
这个压缩包包含了Struts2的基础jar文件,这些文件是开发基于Struts2的应用程序所必需的核心库。让我们详细了解一下这些jar文件以及它们在Struts2框架中的作用。 1. **核心库** - `struts2-core.jar`: 这是Struts2...
首先,`struts2-core-2.1.6.jar`是Struts2的核心库,包含了框架的基础组件,如Action、Interceptor、Result等。而`struts2-json-plugin-2.1.8.jar`则是Struts2的JSON插件,它提供了对JSON的支持,允许我们在Struts2...
2. **xwork-core.jar**:XWork是Struts2的基础,它提供了一些基础功能,如类型转换、Ognl表达式支持、拦截器机制等。很多Struts2的功能都是基于XWork实现的。 3. **ognl.jar**:OGNL(Object-Graph Navigation ...
这个"Struts2基础Jar包13个"包含了实现Struts2框架所需的核心库和其他依赖组件。下面,我们将详细探讨这些Jar包以及它们在Struts2框架中的作用。 1. **核心框架**: - `struts2-core.jar`:这是Struts2的核心库,...
根据给定文件的信息,我们可以提炼出以下关于“泰牛程序员 韩顺平 JavaEE全套 第15部分 Struts2基础入门”的相关知识点。 ### 一、JavaEE概述 Java Platform, Enterprise Edition(JavaEE)是由Oracle公司维护的一...
让我们深入探讨一下Struts2的基础知识。 1. **MVC架构**: MVC模式是软件设计中的一个经典模式,它将应用逻辑分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。在Struts2中,模型负责业务...
Struts2是一个基于MVC(Model-View-Controller)架构模式的Java web框架,它是在WebWork2的基础上发展起来的。Struts2旨在提供比其前身Struts1更优秀的特性和功能,以解决传统Struts1框架的一些局限性。下面我们将...
### Struts2框架基础知识 #### 一、Struts2框架简介 Struts2是一个基于Java的开源Web应用程序框架,属于MVC(Model-View-Controller)模式的一种实现。它简化了Web应用的开发过程,使得开发者可以更加专注于业务...
Struts2还提供了一个基础类`com.opensymphony.xwork2.ActionSupport`,该类实现了常用的接口,简化了开发过程。值得注意的是,在Struts2中,Action接口并不是必需的,任何包含`execute`标记的POJO(Plain Old Java ...
综上,这个“struts2 API帮助文档”对于开发人员深入理解和使用Struts2框架至关重要,涵盖了框架的各个方面,从基础组件到高级特性的实现。有了这份文档,开发者可以更高效地编写稳定、可维护的Java web应用。
### Struts2框架基础二:深入理解OGNL与拦截器 #### 一、OGNL概述 **OGNL**(Object-Graph Navigation Language)是Struts2框架中的一个强大的表达式语言,用于获取或设置Java对象的属性值。它支持对对象图进行导航...
在Struts2之前,WebWork是另一个流行的轻量级框架,Struts2在设计上借鉴了很多WebWork的理念和特性,因此可以说WebWork是Struts2的基础之一。 ### Struts2与WebWork的关系 Struts2和WebWork都属于MVC(Model-View-...
这些jar文件是Struts2框架运行的基础,开发者需要将它们添加到项目的类路径中,以便能够利用Struts2的各种特性。 Struts2的核心jar包包括以下几个主要部分: 1. `struts2-core.jar`:这是Struts2框架的核心库,...
开发者可以自定义Action类,通常会继承`org.struts2.interceptor.ActionSupport`,这个基类提供了错误处理、国际化等基础功能。 **5. Interceptors(拦截器)** 拦截器是Struts2的一个强大特性,可以在Action执行...
总的来说,"struts2 基本jar包"是构建基于Struts2框架的Web应用的基础,它们共同构成了一个强大的MVC框架,使开发者能够高效地开发出结构清晰、易于维护的Java Web应用。理解并熟练使用这些jar包及其提供的功能,是...
- **优势**:使用 Struts2 可以显著提高开发效率,因为它能够处理很多基础任务,如数据接收、类型转换、验证等。 **1.2 Struts2 架构** - **MVC 架构**:Struts2 采用经典的 MVC 架构,分为模型(Model)、视图(View)...
Struts1和Struts2是两个非常著名的Java Web框架,...总的来说,Struts2在设计上更加灵活、可测试和可扩展,而Struts1则相对更注重基础功能和简单的实现。在实际项目中,开发者会根据具体需求和项目规模选择适合的框架。
2. **xwork-core.jar**:XWork是Struts2的基础,提供了动作执行、类型转换、异常处理等功能。 3. **ognl.jar**:Object-Graph Navigation Language,用于表达式语言,负责在Action与视图之间传递数据。 4. **...