struts2—使用通配符

Struts 2中的通配符设置:优化你的URL模式 然而,在实际应用中,我们可能需要对通配符进行一些调整和优化,以便更好地满足我们的需求。在本文中,我们将讨论如何设置和使用Struts 2中的通配符,并提供一些示例代码来说明其用法。在Struts 2中,通配符是一种非常有用的功能,可以通过配置URL模式来匹配和处理请求。通过使用通配符,我们可以轻松地处理各种不同的URL,并将它们映射到适当的处理程序和操作。这些示例中的通配符可以匹配URL中的不同部分,并将其作为变量传递给处理程序。是一个变量,它可以匹配URL中的任何值。将匹配到这个URL模式,而。 阅读详情

struts2的配置文件是 struts.xml 在这个配置文件里面可以使用通配符,其中的好处就是,大大减少了配置文件的内容。当然,相应付出的代价是可读性。

使用通配符的原则是 约定高于配置.

在项目中,我们有很多的命名规则是约定的...我们使用通配符那就必须有一个统一的约定.否则通配符将无法成立

看下面的例子.

(1)先看我们的action配置

 <package name="user" extends="struts-default" namespace="/">
  <action name="user_*" class="com.test.action.UserAction" method="{1}">
   <result>/user_{1}.jsp</result>
  </action>
 </package>

带红字的解释下,第一个带"*" 表示的是 后面匹配任意字符...这个很容易理解

{1}表示的是第一个"*"的内容...注意,这里的大括号,比如,如果是user_add .那么{1}就是表示 add ..

当然,这里只有一个"*".你可以有两个,甚至三个四个..比如这样写 *_* 这样就是两个"*" .那么我们也可以用{1},{2}来分别的表示他们.

(2) 对应的action 内容

package com.test.action;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class UserAction extends ActionSupport
{
 public String add()
 {
  return SUCCESS;
 }
 public String delete()
 {
  return SUCCESS;
 }
 public String update()
 {
  return SUCCESS;
 }
 public String select()
 {
  return SUCCESS;
 }
}

因为是举例子,所以每个方法里面都没实现内容.

(3) 其他就是几个jsp页面..

其中 user_*.jsp页面没什么好说的,就是显示一句话.比如user_add.jsp就是显示 "这是添加页面" 其他的类似.就是为了让我们看到已经跳转到对应的页面.

index.jsp写一下

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 <a href="user_add.action">添加页面</a><br>
 <a href="user_delete.action">删除页面</a><br>
 <a href="user_update.action">修改页面</a><br>
 <a href="user_select.action">查找页面</a><br>
</body>
</html>
这里需要解释的就是两个

(1)<base>标签的作用是,指定下面所有相对路径的基地址..看下面的图示

(2)下面的红字是几个链接.分别连接到四个action..这里是四个相对路径.基路径就是上面设置的basePath..

注意,jsp默认的路径是服务基路径..也就是 htttp://localhost:8080/ 也就是说,不包括项目名.


总结一下,

大家可以看到,配置文件里面,只有三句话就将增删改查四个操作全部配置好了....这就是通配符的作用.但是,我们也可以看到,对应的命名规则的约定也非常的苛刻...

最后需要注意的一点是匹配的优先权

 (1)如果struts.xml里面有对应的action name .就算它有其他通配符匹配的,都优先对应完全相同的.

比如 有一个 action name 是 "user_add"  还有一个是 "user_*" .现在,来一个请求是 "user_add.action " .那么,它会优先匹配"user_add " ..其实,这个很好理解..

(2)如果一个action name对应于两个带通配符的action name 那么,需要看这个配置谁在前面.它匹配写在前面的

比如 有一个 action name 是 "*_*"  还有一个是 "user_*" .现在,来一个请求是 "user_add.action " .那么,它会优先匹配写在前面的...

任何带"*"的action name 优先权都是一样的...不是说带一个"*"的优先权就比带两个"*" 的高.

Struts2框架中使用通配符调用Action方法的详细指南 Struts2框架是一个开源的MVC(Model-View-Controller)框架,用于开发基于Java EE的Web应用程序。它起源于Apache基金会,并基于WebWork框架。Struts2框架将业务逻辑层和表示层分离,使开发者可以专注于业务逻辑的实现,而无需担心表示层的问题。在Struts2框架中,Action是处理业务逻辑的核心组件。其接口定义了必须实现的方法,主要是execute(),这是在Struts2中所有Action类的入口点。除了execute() 阅读详情

相关推荐

struts2通配符的使用详解

struts2通配符的使用详解

Struts2通配符和它的各种坑

Struts2和Servlet相比有几个牛逼的地方。对OGNL表达式的整合以及通配符的运用就是其中两个。 而J2EE标准中,与这两个对应的分别是JSP中EL表达式的运用,以及urlPattern中的通配符。 前面的一篇文章中,讲述了OGNL的使用(OGNL在功能上把EL秒成渣(~ ̄▽ ̄)~ )。 这篇文章就来说说Struts2中的通配符以及它的各种坑。 最基本的使用 1. *通配...

优快云文章已停止维护,后续文章会在 https://blog.hufeifei.cn 持续更新 3022

struts2 通配符配置

NULL 博文链接:https://cdxs2.iteye.com/blog/1925234

Struts2 通配符

通配符的使用 在struts.xml文件中,用来配置action信息 <!-- 开启动态方法调用 --> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="actions" extends="struts-default" namesp...

OVO_LQ_Start的博客 306

struts2的注解及通配符的简单实例

希望能帮助有需要的人!!! @ Controller(value="userAction") @ SuppressWarnings("serial") public class UserAction implements ModelDriven{ private User user = new User(); public User getModel() { return user; } public String getUsers(){ System.out.println(user.getUserName()); return "success"; } }

【实战揭秘】高胜率集合竞价抓涨停策略:融合MACD背离与斐波那契的量化模型

本文揭秘了一种高胜率集合竞价抓涨停策略,融合MACD背离与斐波那契数列的量化模型。通过量能异动、技术形态突破和资金共识形成的交叉验证,该策略在实盘中表现出色。文章详细解析了MACD背离的量化实现细节、斐波那契数列的实战应用,以及策略的量化建模过程,帮助投资者提升交易胜率。

herb5的博客 1550

struts2中的通配符

一、Action通配符(wildcard)的配置 使用通配符,将配置量降到最低, 不过,一定要遵守"约定优于配置"的原则 1、通配符 星号(*) 表示所有 {数字} 表示第几个通配符 例如:Student* 那么{1}代表第一个星号(*) *_* 那么{1}代表第一个星号(*) ,{2}代表第二个星号(*) &lt;package name="actions" extends=...

thewebcode 186

STM32F103跑LVGL,用DMA加速刷屏,800*480大屏也能丝滑

本文详细介绍了如何在STM32F103芯片上通过DMA加速和内存优化,实现800*480大屏的LVGL流畅运行。通过FSMC+DMA硬件架构优化、双缓冲机制和LVGL参数调优,显著提升了界面刷新率和响应速度,适用于嵌入式GUI开发中的高性能需求场景。

weixin_30357231的博客 375

struts2通配符的使用

struts2 通配符 如struts中配有如下几个action,ManagerUserAction中有与之对应的方法 action name="addUser" class="com.netshuai.action.ManagerUserAct

一个人有了信仰,不管成不成功,至少不会迷茫。 5639

Visual Studio报错TRK0005找不到CL.exe?三步彻底解决环境变量问题

本文详细解析了Visual Studio报错TRK0005找不到CL.exe的根本原因,并提供了三步彻底解决环境变量问题的方案。从验证安装完整性到配置永久环境变量,再到注册表级修复,帮助开发者建立健壮的开发环境配置体系,确保编译链稳定运行。

weixin_30839881的博客 459

Xilinx XDMA驱动代码分析及用法

Xilinx XDMA驱动代码分析及用法 先简单的介绍一下,赛灵思的XDMA的驱动是用于做什么的、他的主要功能就类似与网卡pcie接口的网卡驱动、用于控制主机与fpga设备进行pcie的通讯。通讯的主要方式是设备文件的读写,这里不清楚的同学可以看一下我上一篇文章。通过控制设备文件的读写,操作驱动与fpga设备进行数据传输。 1、目录结构 zacha@Superman:~/nfs/xdma-debug/dma_ip_drivers-master/XDMA/linux-kernel$ tree -C . ├──

恍恍惚惚的大穷猫的博客 3万+

Struts2通配符和它的各种问题总结

参考 https://blog.youkuaiyun.com/Holmofy/article/details/78387958 错误总结在后面 通配符的使用 <action name="The_*" class="action.{1}Action" method="{1}"> <result name="success"> <...

茨时代べ 的博客 1294

海思Hi3516CV610开发实战:在Ubuntu 22.04上从零构建嵌入式Linux开发环境

本文详细介绍了在Ubuntu 22.04上为海思Hi3516CV610开发板搭建嵌入式Linux开发环境的完整流程。从虚拟机配置、系统安装到基础环境设置,提供了实用技巧和常见问题解决方案,帮助开发者高效构建适用于智能视觉处理的开发环境。

weixin_29197699的博客 508

struts2 通配符

注意:命名规则     注意如果有通配符,先精确匹配action的name属性,如果不能精确匹配,再进行通配,(只要action配置中有通配符所有有通配符根据配置先后进行匹配) --> Eg1: package name="tpf" namespace="/tpf"extends="struts-default" >     <!-- 通配符 -->         acti

u012603040的专栏 914

华为OD机考双机位C卷 - 斗地主之顺子 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 斗地主之顺子(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 9692

ARM系统控制和管理接口System Control and Management Interface

本文档描述了一个可扩展的独立于操作系统的软件接口,用于执行各种系统控制和管理任务,包括电源和性能管理。 本文档描述了系统控制和管理接口(SCMI),它是一组操作系统无关的软件接口,用于系统管理。

AI-安全-功耗 1912

SSH笔记-Struts2的通配符

1、一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 (就是一个action类里面包含多个能被不同action调用的方法的时候,用通配符就能简化为一个通用的映射关系,即配置一个就完成struts.xml对应映射的设置) 2、通配符规则 - (1)如果找到多个匹配,则没有用通配符的优先使用 -...

oyy的博客 449

基于深度学习的生活垃圾检测与分类系统:YOLOv5、YOLOv6、YOLOv7与YOLOv8实现

本项目的目标是开发一个基于YOLO系列模型的生活垃圾检测与分类系统。数据集准备与标注:收集并标注生活垃圾图像数据集。模型训练:使用YOLOv5、YOLOv6、YOLOv7、YOLOv8等深度学习模型训练垃圾分类系统。UI界面设计:设计一个简洁的用户界面,支持图像或视频的上传与垃圾分类结果展示。实时垃圾检测与分类:通过摄像头进行实时垃圾检测和分类。结果展示与保存:展示检测结果,支持用户保存分类后的图像或视频。

YOLO 705

struts2:通配符的使用

介绍学习了一下struts2的通配符的使用,因为之前的项目中由于数量巨大的action文件导致struts.xml文件特别庞大,所以我个人感觉struts2的通配符的 优点: 精简struts.xml配置文件(尤其action特别多的情况下) 使项目的V层更规范化统一化(比如action文件和jsp文件的命名都得可以自行规范统一) 缺点: struts.xml文件阅读不那么直观。 使用先看一下

Ezrealmore 1219

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

struts2——通配符

struts2的配置文件是 struts.xml.. 在这个配置文件里面可以使用通配符..其中的好处就是,大大减少了配置文件的内容..当然,相应付出的代价是可读性.. 使用通配符的原则是约定高于配置. 在项目中,我们有很多的命名规则是约定的...我们使用通配符那就必须有一个统一的约定.否则通配符将无法成立 看下面的例子. (1)先看我们的action配置 1 <pa...

diaolianxian9049的博客 206

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Struts2 通配符使用

Struts2通配符的使用可以在同一个Action中实现一个类别的(如学生管理) 增,删,改,查  方便项目后期的维护和查看。 1.页面请求 pageEncoding="UTF-8"%> Insert title here alladd.action">添加数据 allupdate_updateSuccess.action">修改数据 alldelete

qq_39465194的博客 712

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Struts2通配符接收参数

Struts2通配符接收参数struts.xmlindex.jspStudentActionTeacherAction struts.xml &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt; &amp;lt;constant name=&quot;struts.enable.DynamicMethodInvocation&

CJCC白朴的博客 422

【struts2】action中使用通配符

在以前的学习中,元素的配置,都是用明确的配置,其name、class等属性都是一个明确的值。其实Struts2还支持class属性和method属性使用来自name属性的通配符。   1)接下来看看使用通配符的示例,如果我们使用以下配置: action name="*_*" class="cn.javass.action.action.{1}Action" method="{2}">

coder 3393

struts2中Action配置之通配符配置

在使用struts2时,每一个action都需要配置,每一个action里面的方法以及其返回到的界面都需要配置,如果一个一个配置,就太麻烦了,这里我们可以约定一些命名规范,然后再struts.xml里面使用通配符配置。

下半夜的风 2065
上一篇: Servlet中的过滤器Filter详解
下一篇: struts2简单的实例
andyLiuJava
博客等级 码龄14年 0粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值