有三种方法可以使一个Action处理多个请求

  1. 动态方法调用DMI
  2. 定义逻辑Acton
  3. 在配置文件中使用通配符

这文章就谈论一下定义逻辑Action

这里主要关注的是struts.xml配置文件,一般情况下,我们会这样编写一个Action,当请求的名字为login的时候,就会调用LoginAction的类里面的execute方法

<action name="login" class="struts2.action.LoginAction"><result name="success">/success.jsp</result><result name="input">/login2.jsp</result>
</action>

在这里我们只需要多个一个method的属性就能实现处理多请求,如下图,这样我们就可以在实现类DMIAction中分别请求两个不同的方法login和register实现不同的逻辑

<action name="D_Login" class="struts2.action.DMIAction" method="login"><result name="success">RegisterSuccess.jsp</result>
</action><action name="D_Register" class="struts2.action.DMIAction" method="register"><result name="success">RegisterSuccess.jsp</result>
</action>

下面是完整例子

1.两个页面分别请求两个不同的请求,D_Login和D_Register

//DMI_login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><h4>请输入</h4><s:form action="D_Login"><s:textfield name="username" label="User Name" /><s:password name="password" label="Password" /><s:submit value="Login" /></s:form></body>
</html>

//DMI_register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><h4>注册</h4><s:form action="D_Register"><s:textfield name="username" label="User Name" /><s:password name="password" label="Password" /><s:submit value="Register" /></s:form>
</body>
</html>

2.struts.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><constant name="struts.enable.DynamicMethodInvocation" value="true"/><package name="default" extends="struts-default"><action name="D_Login" class="struts2.action.DMIAction" method="login"><result name="success">RegisterSuccess.jsp</result></action><action name="D_Register" class="struts2.action.DMIAction" method="register"><result name="success">RegisterSuccess.jsp</result></action></package>
</struts>

3.Action类

package struts2.action;import java.util.Map;import com.opensymphony.xwork2.ActionSupport;public class DMIAction extends ActionSupport {/*** */private static final long serialVersionUID = 1L;public String login() {return SUCCESS;}public String register() {return SUCCESS;}private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}private Map sessionMap;private Map applicationMap;public void setSession(Map sessionMap) {this.sessionMap = sessionMap;}public void setApplication(Map applicationMap) {this.applicationMap = applicationMap;}
}

转载于:https://www.cnblogs.com/oscar1987121/p/6077947.html

Struts2学习笔记 - Action篇定义逻辑Action相关推荐

  1. 坐标变换学习笔记—代码篇Matlab

    坐标变换学习笔记-代码篇Matlab 四元数 →\to→ 旋转矩阵 quat2dcm quat2rotm 四元数 →\to→ 欧拉角 quat2angle quat2eul 旋转矩阵 →\to→ 四元 ...

  2. Vue学习笔记进阶篇——Render函数

    本文为转载,原文:Vue学习笔记进阶篇--Render函数 基础 Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编 ...

  3. python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据

    但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...

  4. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  5. C# 学习笔记入门篇(上)

    文章目录 C# 学习笔记入门篇 〇.写在前面 Hello World! 这篇学习笔记适合什么人 这篇学习笔记到底想记什么 附加说明 一.命名空间 "进入"命名空间 嵌套的命名空间. ...

  6. 数据库MySQL学习笔记高级篇(周阳)

    数据库MySQL学习笔记高级篇 1. mysql的架构介绍 mysql简介 高级Mysql mysqlLinux版的安装 mysql配置文件 mysql逻辑架构介绍 mysql存储引擎 2. 索引优化 ...

  7. python分析鸢尾花数据_python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据...

    但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...

  8. Redis学习笔记②实战篇_黑马点评项目

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

  9. [mmu/cache]-ARM MMU的学习笔记-一篇就够了

    ★★★ 个人博客导读首页-点击此处 ★★★ . 说明: 在默认情况下,本文讲述的都是ARMV8-aarch64架构,linux kernel 64位 . 相关文章 1.ARM cache的学习笔记-一 ...

最新文章

  1. 虚商烦恼多?不在怕的!你距离享受高效虚商控制台只差一步的距离
  2. f-BRS: Rethinking Backpropagating Refinement for Interactive Segmentation解析
  3. webService、webSocket、socket、http之间的区别
  4. 《算法竞赛进阶指南》数论篇
  5. 计算机网络利用率是什么_当我们在谈论高并发的时候究竟在谈什么?
  6. 1225 数数字
  7. Nginx(6)-配置基于域名的虚拟主机
  8. java接口构造方法吗_Java中抽象类和接口中有构造方法吗?
  9. PCM data flow - 3 - ASoC codec driver
  10. 基于mysql的全文索引
  11. Matlab 实现信号滤波
  12. ubuntu20安装teamview15
  13. MAC OS修改hosts
  14. SAP 月末结账步骤
  15. Excel数据分析(一)公式错误值与解决办法
  16. 你知道做一个网站要多少钱网站怎么运营能赚钱
  17. 【软件工程】-软件过程
  18. 初学linux(-)
  19. usaco4.4.1 Shuttle Puzzle
  20. CSS(b站学习记录)

热门文章

  1. matlab离散点包络,求大神指点绘制空间内散点图的包络面,,,散点程序如下
  2. SPOJ D-query 树状数组离线 求区间内不同数字的个数
  3. 词法分析 有穷自动机
  4. OpenGL基础9:纹理
  5. mac电脑开发环境配置
  6. python后台Flask 快速入门
  7. matlab2c使用c++实现matlab函数系列教程-atan函数
  8. 向量-创建数组-linspace/logspace函数
  9. python绘制一棵樱花树
  10. samba配置过程(附网络凭据的解决方法)