`

struts2 action

阅读更多

关键字: struts2 action

. 动态方法调用

一个Action包含多个业务处理功能,根据用户请求表单的不同,调用不同的方法,struts1DispatchAction相似.

 

首先要设置:

struts.enable.DynamicMethodInvocation=true 设置支持动态方法调用,默认为true,可以不用设

 

Action与配置不变:

 

Java代码 复制代码
  1. public class LogonAction {   
  2.     private String userName;   
  3.     private String userPwd;   
  4.     public String getUserName() {   
  5.         return userName;   
  6.     }   
  7.     public void setUserName(String userName) {   
  8.         this.userName = userName;   
  9.     }   
  10.     public String getUserPwd() {   
  11.         return userPwd;   
  12.     }   
  13.     public void setUserPwd(String userPwd) {   
  14.         this.userPwd = userPwd;   
  15.     }   
  16.        
  17.     public String login() throws Exception{   
  18.         return "succee";   
  19.     }   
  20. }  
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 login() throws Exception{
		return "succee";
	}
}

 

 

Action配置

 

Xml代码 复制代码
  1. <action name="logon" class="com.LogonAction">  
  2.             <result name="succee">/logon/welcome.jsp</result>  
  3.             <result name="input">/logon/logon.jsp</result>  
  4. </action>  
<action name="logon" class="com.LogonAction">
            <result name="succee">/logon/welcome.jsp</result>
            <result name="input">/logon/logon.jsp</result>
</action>

 

 

<form action="logon!login.action" method="post">

 

Logon!logon.action:意思是提交表单给 logon.actionlogin()方法来处理

 

 

 

使用通配符

 

1.
Xml代码 复制代码
  1. <action name="user*" class="com.UserAction" method="{1}">  
  2.        <result name="succee">/logon/welcome.jsp</result>  
  3.        <result name="input">/logon/logon.jsp</result>  
  4. </action>  
<action name="user*" class="com.UserAction" method="{1}">
       <result name="succee">/logon/welcome.jsp</result>
       <result name="input">/logon/logon.jsp</result>
</action>

比如当用户请求userLogon时,会被UserAction类处理,method{1}中{1}值为name属性中第一个*的值.

 

2.

Xml代码 复制代码
  1. <action name="*Action_*" class="com.{1}" method="{2}">  
  2.         <result name="succee">/logon/welcome.jsp</result>  
  3.         <result name="input">/logon/logon.jsp</result>  
  4.  </action>  
<action name="*Action_*" class="com.{1}" method="{2}">
        <result name="succee">/logon/welcome.jsp</result>
        <result name="input">/logon/logon.jsp</result>
 </action>

 

 

当用户请求UserAction_logon时,会被UserAction类的logon方法处理
与上面一样,class中{1}的值为name属性中第一个*的值,也就是UserAction,{2}的值为name属性中第二个*的值,即为logon

.跟据请求参数觉定结果

Xml代码 复制代码
  1. <action name="logon" class="com.LogonAction">  
  2.             <result name="succee" type="redirect">/logon/welcome.jsp?userName=${userName}</result>  
  3.             <result name="input">/logon/logon.jsp</result>  
  4. </action>  
<action name="logon" class="com.LogonAction">
            <result name="succee" type="redirect">/logon/welcome.jsp?userName=${userName}</result>
            <result name="input">/logon/logon.jsp</result>
</action>

 

 

 

Welcome.jsp
<body>
  request.getParamter:<%=request.getParameter("userName") %>
</body>

${属性名} 就是action中的属性值.
在welcome.jsp中可以通过request.getparamter得到userName的值

分享到:
评论

相关推荐

    struts 2 action 动态调用

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

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

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

    struts2 Action编写方式

    在Struts2中,Action类扮演着控制器的角色,负责处理用户请求并协调模型与视图之间的交互。以下是关于"struts2 Action编写方式"的详细讲解: 1. POJO(Plain Old Java Object)方式: 在Struts2中,Action类可以...

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

    在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含中文字符的数据时,可能会遇到编码问题,因为HTTP请求默认使用的是ASCII编码,而中文字符需要UTF-...

    Struts2_Action

    Struts2 Action是该框架中的核心组件,用于处理用户请求并返回相应的响应。 首先,要了解Struts2 Action的开发,需要熟悉其基本概念。Struts2 Action本质上是一个Java类,它包含了处理用户请求的业务逻辑。为了将这...

    ajaxt json 调用struts2 action的实例(myeclipse 直接导入运行)

    ajaxt json 调用struts2 action的实例(myeclipse 直接导入运行) 学习点: 1;怎样在页面用ajax调用struts2的action 2;怎样对struts进行配置 3;ajax的运行历程 最简单明了的实例,清晰的帮你弄清上述概念,运行...

    struts2 action 配置方法 &&struts2的配置文件

    Struts2是一个强大的MVC框架,它在设计上吸收了XWork的核心机制,尤其是在Action的处理上。Action是Struts2中的核心组件,它负责处理用户的请求并执行业务逻辑。在Struts2中,Action类需要实现`...

    Struts2SpringUnitDemo单元测试

    5. **整合测试**:Struts2SpringUnitDemo还涉及到了框架的整合测试,这通常是为了确保Struts2的Action能够顺利地与Spring管理的bean交互。整合测试可能会包括检查Action是否能正确地从Spring容器获取依赖,以及在...

    struts2 in Action

    如果你想自学struts2,此文档是很好的自学宝典,经典struts2 in Action,能帮你建立整体的struts2思想,你还在犹豫什么

    struts2+json

    总的来说,"struts2+json"资源涉及到了Struts2框架中的Action设计、拦截器机制、结果类型的配置,以及AJAX和JSON在Web应用中的使用。理解这些知识点对于开发动态、交互性强的Java Web应用至关重要。

    Struts2中Action接收参数的方法

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

    Struts2主要Lib

    2. **Struts2 Action**:Action是Struts2的核心组件,它处理用户请求,并通过业务层进行数据处理。Action类通常继承自`org.apache.struts2.dispatcher.ng.ExecuteOperations`或实现了`...

    Struts2与Struts1区别

    ActionSupport 类则提供了常用功能的实现,但 Action 接口并非强制,任何包含 execute 方法的普通 Java 对象(POJO)都能作为 Struts2 的 Action。 2. **线程模型**: - Struts1 的 Action 实例是单例的,这意味着...

    struts1和struts2的区别

    而在Struts2中,Action类可以实现Action接口,也可以实现其他接口以获取自定义服务。更重要的是,Struts2允许任何带有execute方法的普通Java对象(POJO)作为Action,提供了更大的灵活性。 线程模型是另一个关键...

    struts2经典实例

    `Struts2_Action` 示例展示了如何定义和执行Struts2中的Action,这是框架的核心部分。通过这个实例,你可以学习到Action的生命周期、结果映射以及如何处理业务逻辑。 7. **Struts2 HelloWorld** `Struts2_Hello...

    struts2面试题

    Struts1 的 Action 类需要继承一个抽象基类,而 Struts2 的 Action 类可以实现一个 Action 接口,使可选和定制的服务成为可能。 2. Struts2 的工作流程: Struts2 的工作流程可以分为九个步骤: (1)客户端提交...

    struts2 约定原则

    stuts2 项目开发action 类 action 视图文件约定规则

Global site tag (gtag.js) - Google Analytics