Struts2:Action类的写法,推荐使用继承ActionSupport类的方法

文章目录

  • 方法一:Action类是一个POJO类(简单的Java类)
    • ActionDemo2.java
    • struts_demo2.xml
    • struts.xml
    • 运行结果
    • 其他
    • strutsz_demo1.xml
  • 方法二:实现一个Action的接口
    • ActionDemo2_2.java
    • struts_demo2.xml
    • 运行结果
  • 推荐!!!方法三:Action类继承ActionSupport类
    • struts_demo2.xml
    • 运行结果

action一共有三种编写方法:

方法一:Action类是一个POJO类(简单的Java类)

新建包,action类,模块化的struts_demo2.xml的文件
在这里插入图片描述

ActionDemo2.java

在这里插入图片描述

package com.zhang.struts2.demo2;
/**
 * 
 * @author zhangwt
 *Action的编写方式:Action类是一个POJO类,(简单的Java类)
 */
public class ActionDemo2 {
	public String execute(){
		System.out.println("ActionDemo2执行了~~~~~~~");
		return null;
	}
}

struts_demo2.xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<!-- Struts2为了管理Action的配置,通过package进行管理,action类在package里 -->
	
	<!-- 配置Struts2的包================== -->
		<!--package的name随便起名,但是不能重复 -->
		<package name="demo2" extends="struts-default" namespace="/">
			<action name="ActionDemo2" class="com.zhang.struts2.demo2.ActionDemo2"></action>
		</package>
</struts>

struts.xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<!-- Struts2为了管理Action的配置,通过package进行管理,action类在package里 -->
	
	<!-- 配置Struts2的包================== -->
			<!-- 使用模块化将action的配置包含进来 -->
			<include file="com/zhang/struts_demo1.xml" />
			<include file="com/zhang/struts2/demo2/struts_demo2.xml"></include>
</struts>

运行结果

从 项目 运行
在这里插入图片描述

其他

strutsz_demo1.xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<!-- Struts2为了管理Action的配置,通过package进行管理,action类在package里 -->
	
	<!-- 配置Struts2的包================== -->
		<!--package的name随便起名,但是不能重复 -->
		<package name="test" extends="struts-default" namespace="/">
			<!-- 配置Action============== -->
			<action name="hello" class="com.zhang.hello">
				<!-- 配置页面的跳转============== -->
				<result name="success">/success.jsp</result>
				
			</action>
		</package>
</struts>

方法二:实现一个Action的接口

先写一个action类,再写配置文件,再在 项目 运行

ActionDemo2_2.java

在这里插入图片描述

package com.zhang.struts2.demo2;

import com.opensymphony.xwork2.Action;

/**
 * Action的编写 
 * @author zhangwt
 * 	实现接口的这种方式,提供了五个常量(五个逻辑视图的名称)
 * SUCCESS  :成功
 * ERROR	:失败
 * LOGIN	:登录出错页面跳转
 * INPUT	:表单的时候出错
 * NONE		:不跳转
 *
 */
public class ActionDemo2_2 implements Action{

	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		System.out.println("ActionDemo2_2执行了~~~~这是Action的第二个编写方法:实现一个Action的接口");
		return null;
	}

}

struts_demo2.xml

在这里插入图片描述

运行结果

在 项目 运行
在这里插入图片描述

推荐!!!方法三:Action类继承ActionSupport类

先写一个action类,再写配置文件,再在 项目 运行
ActionDemo2_3.java
在这里插入图片描述

package com.zhang.struts2.demo2;

import com.opensymphony.xwork2.ActionSupport;

/**
 * 
 * @author zhangwt
 *Action的编写方式三:Action类继承ActionSupport类
 *推荐使用这种方式,ActionSupport类中提供了数据校验,国际化等一系列操作的方法
 */
public class ActionDemo2_3 extends ActionSupport{
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		System.out.println("ActionDemo2_3执行啦~~~这是action类的第三种编写方式:Action类继承ActionSupport类");
		return NONE;
	}
}

struts_demo2.xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<!-- Struts2为了管理Action的配置,通过package进行管理,action类在package里 -->
	
	<!-- 配置Struts2的包================== -->
		<!--package的name随便起名,但是不能重复 -->
		<package name="demo2" extends="struts-default" namespace="/">
			<action name="ActionDemo2" class="com.zhang.struts2.demo2.ActionDemo2"></action>
			<action name="ActionDemo2_2" class="com.zhang.struts2.demo2.ActionDemo2_2"></action>
			<action name="ActionDemo2_3" class="com.zhang.struts2.demo2.ActionDemo2_3"></action>
		</package>
</struts>

运行结果

在 项目 运行
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/523824.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pandas(day6 图表)

一. 计算效率 1. 测量代码运行时间 %%time %%timeit 单纯计算 代码块执行的时长 %%time _sum(np.arange(6)) CPU times: total: 0 ns Wall time: 1.66 ms用于多次运行代码块并计算平均执行时间 %%timeit _sum(np.arange(6))738 ns 10.7 ns per loop (mean std. dev. of 7…

干货两个常用的 Python 模块

干货|两个常用的 Python 模块 在日常开发工作中&#xff0c;经常会遇到这样的一个问题&#xff1a;要对数据中的某个字段进行匹配&#xff0c;但这个字段有可能会有微小的差异。比如同样是招聘岗位的数据&#xff0c;里面省份一栏有的写“广西”&#xff0c;有的写“广西壮族自…

产品软文推广方案怎么做,媒介盒子告诉你

软文营销现在已经成为许多企业进行宣传的手段&#xff0c;尤其是当新品发布的时候&#xff0c;更需要做好产品软文推广方案&#xff0c;让新产品的推广更加顺利&#xff0c;那么产品软文推广方案怎么开始&#xff1f;又该怎么做好呢&#xff1f;接下来就让媒介盒子告诉你。 一、…

springboot之RESTful接口与Swagger

一、RESTful GET获取资源、POST新建资源、PUT更新资源、DELETE删除资源。 RESTful两大特性 1、安全性&#xff1a;GET请求不会引起资源本身改变。 2、幂等性&#xff1a;对一个接口请求和多次请求返回的资源应该一致。 2xx&#xff1a;成功 4xx&#xff1a;客户端错误。 …

东方博宜 1397. 完美的偶数?

东方博宜 1397. 完美的偶数&#xff1f; 解题思路&#xff1a; 1 读取n个数存到数组里面 2 遍历数组中的每个数&#xff1a;判断每个数是否为偶数位&#xff1b;判断每个数的每个数位是否为偶数。 细节&#xff1a;for循环里面定义的变量只能在for循环内使用。 在遍历数组中的数…

就业班 第二阶段(python) 2401--4.7 day3 python3 函数

八、文件操作 1、读取键盘输入 input 获取标准输入&#xff0c;数据类型统一为字符串 #!/usr/bin/python # -*- coding: UTF-8 -*- str input("请输入&#xff1a;") print&#xff08;"你输入的内容是: ", str&#xff09; 这会产生如下的对应着输入的…

使用阿里云服务器可以做什么?太多了

阿里云服务器可以干嘛&#xff1f;能干啥你还不知道么&#xff01;简单来讲可用来搭建网站、个人博客、企业官网、论坛、电子商务、AI、LLM大语言模型、测试环境等&#xff0c;阿里云百科aliyunbaike.com整理阿里云服务器的用途&#xff1a; 阿里云服务器活动 aliyunbaike.com…

nvm安装node方便版

直接去node官网&#xff08;Index of /download/release/&#xff09;下载以前版本&#xff0c;放到nvm的安装路径下&#xff08;示例&#xff1a;C:\Users\Administrator\AppData\Roaming\nvm&#xff09;&#xff0c;以下图命名方式。 运行命令即可使用 如果报错npm不是外部或…

每日一题(leetcode31):下一个排列-思维

思路&#xff1a;从后往前找到第一个nums[i-1]>nums[i] 然后从后往前(len-1 -->i(包含))找到第一个大于nums[i-1]的数&#xff0c;与nums[i-1]交换&#xff0c;然后对下标区间为[i,len-1]的元素进行排序。 class Solution { public:void nextPermutation(vector<in…

ensp 通过cloud连接交换,通过本机直连telnet交换机

#连接图 #cloud配置 绑定本机一个虚拟网卡&#xff0c;勾选双向通信&#xff0c;这样就可以通过真机直接telent到交换机 #交换机配置 #需要将管理口ip配置为绑定的虚拟网卡同网段的IP&#xff0c;便于直接链接 system-view sysname s5700 undo info-center en telnet server…

Q1剧集市场复盘:2024爱优腾谁在领跑国产剧市场?

2024年Q1剧集市场的成绩单出炉了。 复盘2024年第一季度剧集市场&#xff0c;可以用“生机勃勃”四个字来形容&#xff0c;虽然和去年相比&#xff0c;今年的第一季度缺少了《狂飙》这样的头部大爆款&#xff0c;但市场大盘走势向好。 根据灯塔专业版统计&#xff0c;2024Q1剧…

算法-数论-蓝桥杯

算法-数论 1、最大公约数 def gcd(a,b):if b 0:return areturn gcd(b, a%b) # a和b的最大公约数等于b与a mod b 的最大公约数def gcd(a,b):while b ! 0:cur aa bb cur%bpassreturn a欧几里得算法 a可以表示成a kb r&#xff08;a&#xff0c;b&#xff0c;k&#xff0c…

论大数据服务化发展史

文章目录 引言正文单一指令阶段脚本化阶段用户界面操作阶段大模型AIOPS阶段总结 引言 一直想写一篇服务化相关的文章&#xff0c;那就别犹豫了现在就开始吧 正文 作为大数据基础架构工程师&#xff0c;业界也笑称“运维Boy”&#xff0c;日常工作就是在各个机器上部署以及维…

2024 年广东省职业院校技能大赛(高职组)“云计算应用”赛项样题 3

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件…

C语言文件操作1

1.文件的基础知识 ⚀文件 ▶︎概念◀︎ 文件是指存储在外部存储器上的数据集合。 常见的有&#xff1a;磁盘、U盘等等。 ▶︎作用◀︎ 保存数据 ▶︎文件名◀︎ 文件是指文件的标识符号&#xff0c;每个文件都有一个文件名。 文件名主要由三部分组成:文件路径文件名字文件后…

JSP课设:学校招生系统(附源码+调试)

Java web学校招生系统 Java web学校招生系统功能概述 &#xff08;1&#xff09;登录模块&#xff1a;学校招生系统提供管理员和考生两者登录角色&#xff0c;分别对应不同的功能&#xff0c;登录信息存储在数据库中。 &#xff08;2&#xff09;前台浏览&#xff1a;学校招生…

医药行业痛点以及OKR解决方案

一、背景 随着医药行业的快速发展和市场竞争的加剧&#xff0c;企业面临着前所未有的挑战和机遇。为了在激烈的市场竞争中立于不败之地&#xff0c;某知名医药企业决定引入OKR&#xff08;Objectives and Key Results&#xff0c;目标与关键成果&#xff09;管理模式&#xff0…

【多线程】进程process(进程的管理+进程的调度+分时复用(并发)+PCB)

文章目录 进程一、计算机的组成&#xff1a;1.指令&#xff08;Instruction&#xff09; 二、浅谈操作系统1.日常的操作系统1.操作系统内核内核&#xff1a;进程的隔离性&#xff1a; 三、进程&#xff08;process&#xff09;1.进程的概念2.进程的管理1.管理的两个角度&#x…

NAT网络地址转换原理解析

NAT&#xff08;Network Address Translation&#xff09;&#xff0c;即网络地址转换&#xff0c;是一种在1994年提出的地址转换技术。它的主要目的是在本地网络中使用私有地址&#xff0c;在连接互联网时转而使用全局IP地址。NAT实际上是为解决IPv4地址短缺而开发的技术。NAT…

基于javassm实现的旅游景点线路网站

开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.…