`
ZhouGang库鲁卡
  • 浏览: 30893 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

(转)Struts2基础

 
阅读更多

 

 

                                                     基础理论

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基础面试题

    ### Struts2基础面试题详解 #### 1. Struts2的核心控制器及其性质 - **Struts1的核心控制器**:在Struts1框架中,核心控制器是`ActionServlet`,这是一个实现了`HttpServlet`接口的类,因此本质上是一个Servlet。 ...

    struts2基础jar包

    这个压缩包包含了Struts2的基础jar文件,这些文件是开发基于Struts2的应用程序所必需的核心库。让我们详细了解一下这些jar文件以及它们在Struts2框架中的作用。 1. **核心库** - `struts2-core.jar`: 这是Struts2...

    json struts2转换

    首先,`struts2-core-2.1.6.jar`是Struts2的核心库,包含了框架的基础组件,如Action、Interceptor、Result等。而`struts2-json-plugin-2.1.8.jar`则是Struts2的JSON插件,它提供了对JSON的支持,允许我们在Struts2...

    struts2jar包

    2. **xwork-core.jar**:XWork是Struts2的基础,它提供了一些基础功能,如类型转换、Ognl表达式支持、拦截器机制等。很多Struts2的功能都是基于XWork实现的。 3. **ognl.jar**:OGNL(Object-Graph Navigation ...

    Struts2基础Jar包13个

    这个"Struts2基础Jar包13个"包含了实现Struts2框架所需的核心库和其他依赖组件。下面,我们将详细探讨这些Jar包以及它们在Struts2框架中的作用。 1. **核心框架**: - `struts2-core.jar`:这是Struts2的核心库,...

    泰牛程序员 韩顺平 JavaEE全套 第15部分 Struts2基础入门

    根据给定文件的信息,我们可以提炼出以下关于“泰牛程序员 韩顺平 JavaEE全套 第15部分 Struts2基础入门”的相关知识点。 ### 一、JavaEE概述 Java Platform, Enterprise Edition(JavaEE)是由Oracle公司维护的一...

    struts2简单例子

    让我们深入探讨一下Struts2的基础知识。 1. **MVC架构**: MVC模式是软件设计中的一个经典模式,它将应用逻辑分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。在Struts2中,模型负责业务...

    struts2基础教程

    Struts2是一个基于MVC(Model-View-Controller)架构模式的Java web框架,它是在WebWork2的基础上发展起来的。Struts2旨在提供比其前身Struts1更优秀的特性和功能,以解决传统Struts1框架的一些局限性。下面我们将...

    Struts2框架基础 一

    ### Struts2框架基础知识 #### 一、Struts2框架简介 Struts2是一个基于Java的开源Web应用程序框架,属于MVC(Model-View-Controller)模式的一种实现。它简化了Web应用的开发过程,使得开发者可以更加专注于业务...

    转:struts1与struts2的区别

    Struts2还提供了一个基础类`com.opensymphony.xwork2.ActionSupport`,该类实现了常用的接口,简化了开发过程。值得注意的是,在Struts2中,Action接口并不是必需的,任何包含`execute`标记的POJO(Plain Old Java ...

    struts2 API帮助文档

    综上,这个“struts2 API帮助文档”对于开发人员深入理解和使用Struts2框架至关重要,涵盖了框架的各个方面,从基础组件到高级特性的实现。有了这份文档,开发者可以更高效地编写稳定、可维护的Java web应用。

    Struts2框架基础 二

    ### Struts2框架基础二:深入理解OGNL与拦截器 #### 一、OGNL概述 **OGNL**(Object-Graph Navigation Language)是Struts2框架中的一个强大的表达式语言,用于获取或设置Java对象的属性值。它支持对对象图进行导航...

    struts2中文学习文档

    在Struts2之前,WebWork是另一个流行的轻量级框架,Struts2在设计上借鉴了很多WebWork的理念和特性,因此可以说WebWork是Struts2的基础之一。 ### Struts2与WebWork的关系 Struts2和WebWork都属于MVC(Model-View-...

    struts2所有jar包程序文件

    这些jar文件是Struts2框架运行的基础,开发者需要将它们添加到项目的类路径中,以便能够利用Struts2的各种特性。 Struts2的核心jar包包括以下几个主要部分: 1. `struts2-core.jar`:这是Struts2框架的核心库,...

    struts2 ,struts2 demo

    开发者可以自定义Action类,通常会继承`org.struts2.interceptor.ActionSupport`,这个基类提供了错误处理、国际化等基础功能。 **5. Interceptors(拦截器)** 拦截器是Struts2的一个强大特性,可以在Action执行...

    struts2 基本jar包

    总的来说,"struts2 基本jar包"是构建基于Struts2框架的Web应用的基础,它们共同构成了一个强大的MVC框架,使开发者能够高效地开发出结构清晰、易于维护的Java Web应用。理解并熟练使用这些jar包及其提供的功能,是...

    struts2 学习重点笔记

    - **优势**:使用 Struts2 可以显著提高开发效率,因为它能够处理很多基础任务,如数据接收、类型转换、验证等。 **1.2 Struts2 架构** - **MVC 架构**:Struts2 采用经典的 MVC 架构,分为模型(Model)、视图(View)...

    struts1和struts2区别

    Struts1和Struts2是两个非常著名的Java Web框架,...总的来说,Struts2在设计上更加灵活、可测试和可扩展,而Struts1则相对更注重基础功能和简单的实现。在实际项目中,开发者会根据具体需求和项目规模选择适合的框架。

    搭建基础Struts2开发环境的必需jar包,如需完整的文件请移步官网下载

    2. **xwork-core.jar**:XWork是Struts2的基础,提供了动作执行、类型转换、异常处理等功能。 3. **ognl.jar**:Object-Graph Navigation Language,用于表达式语言,负责在Action与视图之间传递数据。 4. **...

Global site tag (gtag.js) - Google Analytics