`
itwangxinli
  • 浏览: 146099 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts Action Class

阅读更多

In this lesson I will show you how to use Struts Action Class and forward a jsp file through it. 

What is Action Class?

An Action class in the struts application extends Struts 'org.apache.struts.action.Action" Class. Action class acts as wrapper around the business logic and provides an inteface to the application's Model layer. It acts as glue between the View and Model layer. It also transfers the data from the view layer to the specific business process layer and finally returns the procssed data from business layer to the view layer.

An Action works as an adapter between the contents of an incoming HTTP request and the business logic that corresponds to it. Then the struts controller (ActionServlet) slects an appropriate Action and creates an instance if necessary, and finally calls execute method.

To use the Action, we need to  Subclass and overwrite the execute() method. In the Action Class don't add the business process logic, instead move the database and business process logic to the process or dao layer.

The ActionServlet (commad) passes the parameterized class to Action Form using the execute() method. The return type of the execute method is ActionForward which is used by the Struts Framework to forward the request to the file as per the value of the returned ActionForward object.

Developing our Action Class?

Our Action class (TestAction.java) is simple class that only forwards the TestAction.jsp. Our Action class returns the ActionForward  called "testAction", which is defined in the struts-config.xml file (action mapping is show later in this page). Here is code of our Action Class:

TestAction.java

<!---->
package roseindia.net;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class TestAction extends Action
{
  public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response) throws Exception{
      return mapping.findForward("testAction");
  }
}
<!----><!---->

   
Understanding Action Class
Here is the signature of the Action Class.

public ActionForward execute(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.lang.Exception

Action Class process the specified HTTP request, and create the corresponding HTTP response (or forward to another web component that will create it), with provision for handling exceptions thrown by the business logic. Return an ActionForward instance describing where and how control should be forwarded, or null if the response has already been completed.

<script type="text/javascript"><!----></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> <iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-0714075272818912&amp;amp;dt=1181221491906&amp;amp;lmt=1181221491&amp;amp;prev_fmts=120x90_0ads_al_s%2C336x280_as&amp;amp;format=336x280_as&amp;amp;output=html&amp;amp;correlator=1181221491421&amp;amp;url=http%3A%2F%2Fwww.roseindia.net%2Fstruts%2Funderstandingstruts_action_class.shtml&amp;amp;color_bg=FFFFFF&amp;amp;color_text=000080&amp;amp;color_link=000080&amp;amp;color_url=000080&amp;amp;color_border=FFFFFF&amp;amp;ad_type=text_image&amp;amp;ref=http%3A%2F%2Fwww.roseindia.net%2Fstruts%2Fstruts_tiles.shtml&amp;amp;cc=1382&amp;amp;flash=9&amp;amp;u_h=768&amp;amp;u_w=1024&amp;amp;u_ah=738&amp;amp;u_aw=1024&amp;amp;u_cd=32&amp;amp;u_tz=480&amp;amp;u_his=14&amp;amp;u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency=""></iframe>

Parameters:

mapping - The ActionMapping used to select this instance
form - The optional ActionForm bean for this request (if any)
request - The HTTP request we are processing
response - The HTTP response we are creating
Throws:
Action class throws java.lang.Exception - if the application business logic throws an exception

Adding the Action Mapping in the struts-config.xml
To test the application we will add a link in the index.jsp 
<html:link page="/TestAction.do">Test the Action</html:link>

Following code under the <action-mappings> tag is used to for mapping the TestAction class.

   <action
            path="/TestAction"
            type="roseindia.net.TestAction">
            <forward name="testAction" path="/pages/TestAction.jsp"/>
            </action>    	

To test the new application click on Test the Action link on the index page. The content of TestAction.jsp should be displayed on the user browser.

In this lesson you learned how to create Action Class and add the mappings in the struts-config.xml. Our Action Class returns the ActionForward  mapping of the TestAction.jsp.

                         

分享到:
评论

相关推荐

    struts2 action跳转action传参数

    ### Struts2中Action间的参数传递方法 在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。...

    struts2一个action处理多个请求 struts2实例

    在Struts2框架中,Action类是业务逻辑处理的核心组件,它负责接收并处理来自用户的请求。本实例探讨了如何让一个Action类处理多个请求,这在开发中常见于需要集中处理相似请求的情况,可以提高代码复用性和结构的...

    struts2 result转向到action

    &lt;action name="login" class="action.LoginAction"&gt; &lt;result name="success" type="redirect-action"&gt;/allsystem.action &lt;/action&gt; &lt;/struts&gt; ``` 这里定义了一个名为 `login` 的 Action,当表单提交到 `/...

    Struts2 Action参数详细说明

    总结来说,Struts2 Action的参数包括`name`、`class`、`namespace`、`method`等,它们共同构成了Action的完整配置,使我们能够灵活地定义和控制Action的行为。同时,通过`method`属性和DMI,我们可以实现一个类中多...

    struts2.0之action

    &lt;action name="HelloWorld" class="tutorial.HelloWorld"&gt; &lt;result name="success"&gt;/HelloWorld.jsp &lt;action-execution&gt; &lt;/action-execution&gt; &lt;/action&gt; ``` 在上述配置中,Struts 2.0将调用`HelloWorld`类...

    Struts2中Action接收参数的方法

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; ``` struts.xml 文件中,需要配置 Action 的映射关系,例如: ``` &lt;struts&gt; ...

    Struts2中struts_xml的Action配置详解

    在`struts.xml`中,一个Action配置通常由`&lt;action&gt;`元素定义,包含了多个属性,如`name`、`class`、`method`等。 `name`属性用于定义Action的唯一标识,它在请求URL中出现,用于区分不同的Action。例如: ```xml ...

    spring管理struts的action的代码

    ### Spring管理Struts的Action详解 #### 一、Spring与Struts框架整合概述 在Java Web开发中,Spring和Struts是两个非常重要的框架。Spring框架主要负责业务逻辑层的管理,提供依赖注入(DI)和面向切面编程(AOP)...

    去掉.action去掉.do字样 隐藏struts2 URL地址action, strus1的扩展名do也是同理.zip

    &lt;action name="temp" class="com.example.TempAction"&gt; &lt;result&gt;/temp.jsp &lt;/action&gt; ``` 在上面的例子中,用户可以通过访问`/temp`来调用`TempAction`,而无需使用`/temp.action`。 对于Struts1,隐藏.do扩展...

    struts 2 action 动态调用

    ### Struts 2 Action 动态方法调用详解 #### 一、引言 在Struts 2框架中,Action动态方法调用是一项非常实用的功能。它允许开发者在一个Action类中定义多个处理方法,而不仅仅局限于传统的`execute()`方法。这种...

    Struts2 in action

    当用户通过浏览器发送请求时,Struts2会将请求转发给相应的Action处理。 - **执行流程**: - 用户发起HTTP请求。 - 请求被Struts2的前端控制器(FilterDispatcher)拦截。 - FilterDispatcher根据配置找到对应的...

    Struts2_Action学习笔记、通配符{1},{2}

    ### Struts2_Action 学习笔记与通配符配置详解 #### 一、Struts2简介及简单配置 Struts2是一个基于Java EE平台的开源Web应用框架,它继承了Struts1的优点,并在此基础上进行了大量的改进。Struts2的核心功能之一是...

    struts2 action的三种访问方式

    在Struts2中,Action是处理用户请求的核心组件。它负责业务逻辑的执行,并将结果返回给视图进行展示。本篇文章将详细介绍Struts2 Action的三种访问方式:传统方式、通配符方式和动态方式。 1. **传统方式(Static ...

    struts2 action 返回json方法(一)源码

    Action是Struts2的核心组件,用于处理用户的请求,并返回相应的结果。在现代Web应用中,数据通常以JSON(JavaScript Object Notation)格式在客户端和服务器之间交换,因为JSON具有轻量级、易于解析的特性。本篇将...

    Struts2Action处理中文乱码

    Struts2 Action 处理中文乱码问题是一个常见的挑战,尤其是在进行Web开发时,由于编码格式不统一,可能导致输入或显示的中文字符出现乱码。以下是对两种解决方法的详细解释: 方法一:通过配置Struts2的i18n编码 ...

    Struts2上传和下载Action配置

    在Struts2中,文件上传和下载是通过Action类进行配置和处理的,让我们一起深入了解一下这个过程。 首先,我们要理解上传的流程。在用户端,通常通过HTML表单来选择要上传的文件,表单的`enctype`属性必须设置为`...

    Struts 2使用注解配置Action

    在传统的Struts 2应用中,我们通常会通过XML配置文件(struts.xml)来定义Action,包括Action类、结果页面、拦截器等信息。然而,随着Java注解的广泛应用,Struts 2也引入了注解配置的方式来简化开发过程,避免了XML...

    Struts中ActionError学习

    Struts是Java Web开发中的一款经典MVC框架,它的核心组件包括Action、ActionForm、Dispatcher Servlet(Controller)以及视图技术。在这个“Struts中ActionError学习”的主题中,我们将深入探讨ActionError这一机制...

    Struts2在Action中获得Response对象的四种方法

    Struts2获得Response对象的四种方法 Struts2 是一个基于MVC 模式的 Web 应用程序框架,它提供了多种方式来获取 Response 对象,以下是四种获得 Response 对象的方法: 方法 1:使用 Struts2 Aware 拦截器 在 ...

Global site tag (gtag.js) - Google Analytics