关键字: struts2 action
一. 动态方法调用
一个Action包含多个业务处理功能,根据用户请求表单的不同,调用不同的方法,与struts1的DispatchAction相似.
首先要设置:
struts.enable.DynamicMethodInvocation=true 设置支持动态方法调用,默认为true,可以不用设
Action与配置不变:
- 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";
- }
- }
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配置
- <action name="logon" class="com.LogonAction">
- <result name="succee">/logon/welcome.jsp</result>
- <result name="input">/logon/logon.jsp</result>
- </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.action的login()方法来处理
二 使用通配符
1.
- <action name="user*" class="com.UserAction" method="{1}">
- <result name="succee">/logon/welcome.jsp</result>
- <result name="input">/logon/logon.jsp</result>
- </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.
- <action name="*Action_*" class="com.{1}" method="{2}">
- <result name="succee">/logon/welcome.jsp</result>
- <result name="input">/logon/logon.jsp</result>
- </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
三.跟据请求参数觉定结果
- <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>
<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动态方法调用是一项非常实用的功能。它允许开发者在一个Action类中定义多个处理方法,而不仅仅局限于传统的`execute()`方法。这种...
Action是Struts2的核心组件,用于处理用户的请求,并返回相应的结果。在现代Web应用中,数据通常以JSON(JavaScript Object Notation)格式在客户端和服务器之间交换,因为JSON具有轻量级、易于解析的特性。本篇将...
在Struts2中,Action类扮演着控制器的角色,负责处理用户请求并协调模型与视图之间的交互。以下是关于"struts2 Action编写方式"的详细讲解: 1. POJO(Plain Old Java Object)方式: 在Struts2中,Action类可以...
在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含中文字符的数据时,可能会遇到编码问题,因为HTTP请求默认使用的是ASCII编码,而中文字符需要UTF-...
Struts2 Action是该框架中的核心组件,用于处理用户请求并返回相应的响应。 首先,要了解Struts2 Action的开发,需要熟悉其基本概念。Struts2 Action本质上是一个Java类,它包含了处理用户请求的业务逻辑。为了将这...
ajaxt json 调用struts2 action的实例(myeclipse 直接导入运行) 学习点: 1;怎样在页面用ajax调用struts2的action 2;怎样对struts进行配置 3;ajax的运行历程 最简单明了的实例,清晰的帮你弄清上述概念,运行...
Struts2是一个强大的MVC框架,它在设计上吸收了XWork的核心机制,尤其是在Action的处理上。Action是Struts2中的核心组件,它负责处理用户的请求并执行业务逻辑。在Struts2中,Action类需要实现`...
5. **整合测试**:Struts2SpringUnitDemo还涉及到了框架的整合测试,这通常是为了确保Struts2的Action能够顺利地与Spring管理的bean交互。整合测试可能会包括检查Action是否能正确地从Spring容器获取依赖,以及在...
如果你想自学struts2,此文档是很好的自学宝典,经典struts2 in Action,能帮你建立整体的struts2思想,你还在犹豫什么
总的来说,"struts2+json"资源涉及到了Struts2框架中的Action设计、拦截器机制、结果类型的配置,以及AJAX和JSON在Web应用中的使用。理解这些知识点对于开发动态、交互性强的Java Web应用至关重要。
Struts2 中 Action 接收参数的方法 Struts2 框架中,Action 组件可以通过多种方式接收参数,这些方式包括使用 Action 的属性、使用 DomainModel 和使用 ModelDriven。下面将详细介绍这些方法: 使用 Action 的属性...
2. **Struts2 Action**:Action是Struts2的核心组件,它处理用户请求,并通过业务层进行数据处理。Action类通常继承自`org.apache.struts2.dispatcher.ng.ExecuteOperations`或实现了`...
ActionSupport 类则提供了常用功能的实现,但 Action 接口并非强制,任何包含 execute 方法的普通 Java 对象(POJO)都能作为 Struts2 的 Action。 2. **线程模型**: - Struts1 的 Action 实例是单例的,这意味着...
而在Struts2中,Action类可以实现Action接口,也可以实现其他接口以获取自定义服务。更重要的是,Struts2允许任何带有execute方法的普通Java对象(POJO)作为Action,提供了更大的灵活性。 线程模型是另一个关键...
`Struts2_Action` 示例展示了如何定义和执行Struts2中的Action,这是框架的核心部分。通过这个实例,你可以学习到Action的生命周期、结果映射以及如何处理业务逻辑。 7. **Struts2 HelloWorld** `Struts2_Hello...
Struts1 的 Action 类需要继承一个抽象基类,而 Struts2 的 Action 类可以实现一个 Action 接口,使可选和定制的服务成为可能。 2. Struts2 的工作流程: Struts2 的工作流程可以分为九个步骤: (1)客户端提交...
stuts2 项目开发action 类 action 视图文件约定规则