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

struts2中的Action

阅读更多

1.Struts2的Action可以不需实现任何接口或继承任何类,就是一个包含了execute()方法的POJO,下面是一个简单的Action的实现

 

package com;

import com.opensymphony.xwork2.ActionContext;
public class LogonAction {
	private String userName;
	private String userPwd;
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPwd() {
		return userPwd;
	}
	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
	public String execute(){
		
		if(userName.equals("callan") && userPwd.equals("fjf")){
			
			// ActionContext的getSession()返回的不是一个HttpSession,是一个Map
			// 但struts2的拦截器会负责该session与httpsession的转换
			ActionContext.getContext().getSession().put("userName", "callan");
			return "succee";
		} else {
			return "error";
		}
	}
}

 

 

配置文件

 

<package name="logon" extends="struts-default">
        <action name="logon" class="com.LogonAction">
            <result name="succee">/logon/welcome.jsp</result>
            <result name="error">/logon/error.jsp</result>
        </action>
 </package>

 

 

当请求时,Struts运行时根据struts.xml里的Action映射,实例化com.LogonAction,

默认情况下会调用其execute方法。不过我们可以通过配置改变他的方法,配置如下:

 

<action name="logon" method="userLogon" class="com.LogonAction">
            <result name="succee">/logon/welcome.jsp</result>
            <result name="error">/logon/error.jsp</result>
 </action>

 

 

Method配置调用的方法名为userLogon,这时当请求logon.action时会调用userLogon()方法,不会在去调用默认的execute()方法

 

 

 

2. 虽然Action可以不实现任何接口或继承任何类,但大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载execute()方法.(比如说我们需要requestresponse对象时)

 

public class LogonAction2 extends ActionSupport{
	private String userName;
	private String userPwd;
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPwd() {
		return userPwd;
	}
	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
	public String execute(){
		// 得到request对象
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpServletResponse response = ServletActionContext.getResponse();
		return SUCCESS;
	}
}

 

 

SUCCESS是在ActionSupport定义的,同时还定义了ERROR,INPUT,LOGIN,NONE,在配置resultname,他们的值分别为success,error,input,login,none 3.继承ActionSupport类能得到request,response等对象,通过ioc方式也能得到request,response(实现ServletRequestAware, ServletResponseAware接口)

 

public class LogonAction implements SessionAware, ServletRequestAware, ServletResponseAware {
	private String userName;
	private String userPwd; 
	private Map session;
	private HttpServletRequest request; 
	private HttpServletResponse response;
	public String execute(){
		// session是一个map
		// struts2的拦截器会负责该session与httpsession的转换
// 在页面上取值和在session中取一样.session.getAttribute(userName)
		session.put("userName", "callan");
		
		return "succee";
		
	}
	public void setSession(Map session) {
		this.session = session;
	}
	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}
	public void setServletResponse(HttpServletResponse response) {
		this.response = response;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPwd() {
		return userPwd;
	}
	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
}
4
0
分享到:
评论

相关推荐

    Struts2中Action接收参数的方法

    Struts2 中 Action 接收参数的方法 Struts2 框架中,Action 组件可以通过多种方式接收参数,这些方式包括使用 Action 的属性、使用 DomainModel 和使用 ModelDriven。下面将详细介绍这些方法: 使用 Action 的属性...

    struts2 中action的使用

    在Struts2中,Action类是核心组件,它扮演着控制器的角色,负责处理用户请求并驱动模型。以下是对"struts2中action的使用"的详细解释。 1. **Action类**:Action类是Struts2框架中的核心组件,它继承自`...

    struts2 result转向到action

    在 Struts2 中使用 `redirect-action` 来实现 Action 之间的跳转是一种常见的做法,特别是在需要按顺序执行多个 Action 的业务场景中。通过这种方式,不仅可以保持应用程序的良好结构,还能有效地组织业务流程。同时...

    详解Struts2中Action访问Servlet API的几种方法

    详解Struts2中Action访问Servlet API的几种方法 在通常的web开发中Request和Response对象比较常见,但在Struts2框架中由于Action能与JSP页面进行数据交互,所以通常都不会用到这两个对象。如果想在Struts2程序中用到...

    Struts 2实战 struts2 in Action

    - **定义**:Action类是Struts 2中的核心组件之一,它负责处理用户的请求并将数据传递给视图层。 - **特点**:Action类可以使用注解或XML配置文件进行配置,这为开发人员提供了极大的灵活性。通过实现`Action`接口...

    Struts2 in action(struts2实战)

    - **Action**:在Struts2中,Action是业务逻辑的载体,负责处理用户请求并返回结果。每个Action对应一个特定的用户操作。 - **Result**:Action执行完毕后,会返回一个Result,定义了页面跳转或数据呈现的方式。 ...

    Struts2实战(Struts2 In Action中文版)

    6. **国际化与本地化**:学习如何在Struts2中实现多语言支持,提供全球化用户体验。 7. **Tiles布局**:结合Tiles插件,创建复用性强、结构化的页面布局。 8. **异常处理**:理解Struts2的异常处理机制,如何...

    struts2 使用action属性接收中文参数(post提交)

    这篇名为“Struts2 使用action属性接收中文参数(post提交)”的博文可能讲述了如何在Struts2框架中正确处理中文POST请求。在处理中文参数时,主要涉及以下几个关键知识点: 1. **字符编码设置**: - 请求编码:...

    Struts 2实战 Struts 2 in action 的中文版

    根据提供的信息,我们可以推断出这是一本关于Struts 2框架的书籍——《Struts 2实战 Struts 2 in action 的中文版》。本书主要介绍了Struts 2框架的相关概念、工作原理以及实际应用案例等内容。接下来,我们将根据...

    关于struts2中Action名字的大小写问题浅谈

    Struts2 中 Action 名字的大小写问题浅谈 Struts2 框架中 Action 的命名规则是开发者需要注意的问题之一。在日常开发中,开发者可能会遇到各种错误,例如在使用 Struts2 框架编写 Action 类以及在 jsp 中写调用相关...

    Struts2 in action

    - **定义**:在Struts2框架中,**Action** 是用来处理客户端请求的核心类。当用户通过浏览器发送请求时,Struts2会将请求转发给相应的Action处理。 - **执行流程**: - 用户发起HTTP请求。 - 请求被Struts2的前端...

    Struts2 in action中文版+配套源代码

    1. **Action类**:在Struts2中,Action类是业务逻辑的核心,它接收用户请求,执行相关操作,并返回结果。Action类可以被配置在struts.xml文件中,指定其对应的URL和返回的结果类型。 2. **拦截器(Interceptors)**...

    Struts2 in action 中文版

    在Struts2中,Action充当控制器的角色,它接收并处理请求,然后根据业务逻辑决定返回哪个视图。 ### Struts2的架构组件 Struts2框架的架构主要由以下几个关键组件构成: 1. **Action**:这是Struts2中最核心的...

    struts多个action处理

    1. **Action配置**:在Struts2中,Action是业务逻辑的主要承载者。每个Action通常对应一个或多个结果页面。在`struts.xml`配置文件中,我们需要为每个Action定义一个唯一的`name`,这将成为URL的一部分。例如: ```...

    Struts2--3.Action及相关-1

    Action类在Struts2中扮演着业务逻辑处理者的角色,它负责接收用户的请求,执行相应的业务操作,并返回结果到视图层进行展示。 首先,让我们了解`Struts2_0100_Introduction`,这是对Struts2框架的基础介绍。Struts2...

    Struts2 in action 中文版.pdf

    总的来说,《Struts2 in Action》中文版是Java Web开发者必备的参考书籍之一,它不仅提供了全面的技术解析,还强调了实际开发中的问题解决和性能优化。通过学习这本书,开发者可以提升自己在Struts2框架上的专业技能...

    struts2 in action 源码

    struts2 in action 源码

    struts 2 action 动态调用

    本文档将详细介绍如何在Struts 2中实现Action动态方法调用,并通过实例演示其具体应用。 #### 二、基础知识回顾 在开始深入探讨动态方法调用之前,让我们先回顾一下Struts 2框架的基本概念。 1. **Action**: 在...

    struts2 in action 中文版 英文版 源代码 合集

    1. **Action和结果**: Action是Struts2框架中处理用户请求的核心组件,它封装了业务逻辑。结果则定义了Action执行后的跳转目标,可以是另一个Action、JSP页面或者其他资源。 2. **配置文件**: Struts2的配置主要...

Global site tag (gtag.js) - Google Analytics