【Strurts框架】第一节Action-通配符

简介:
使用通配符,将配置量降到最小。

在配置Action这样写:
<action name="student*" class="cn.edu.hpu.action.StudentAction" method="{1}">
       <result name="success">/student{1}_success.jsp</result>
</action>

{1}与*就是通配符。其中{1}指的是“*”号所代表的字符串,method="{1}"代表的就是使用StudentAction中方法名为{1}(说白了就是student后面的字符串)的方法来获取result。

如:
<a href="<%=basePath %>javaee/studentadd">添加学生</a><br/>
<a href="<%=basePath %>javaee/studentdelete">删除学生</a><br/>

这里的studentadd与studentdelete的student后面的字符串就是所谓的“*”,{1}就分别被赋值为add与delete,即:method="add"和method="delete"。

而StudentAction中只需要部署好这两个方法即可:
package cn.edu.hpu.action;

public class StudentAction {
	public String add(){
		return "success";
	}
	
	public String delete(){
		return "success";
	}
}

这种方式避免了多次建立action来指定跳转的jsp或html页面(也适用于多result的情况)

注意:一定要遵守“约定优于配置”的原则
(例如,项目经理会约定你们,各种方法的命名规则,必须怎么怎么写)
注意:struts首先匹配最精确的,如果有比通配符更精确的,首先匹配精确的那个。
结语:通配符用好了,可以将配置优化到最简化

一个最简化配置的例子:
struts.xml:
<package name="default" namespace="/javaee" extends="struts-default">  
   <action name="*_*" class="cn.edu.hpu.action.{1}Action" method="{2}">
       <result name="success">/{1}_{2}_success.jsp</result>
   </action>
</package> 

TeatherAction:
public class TeatherAction {
	public String add(){
		return "success";
	}
	
	public String delete(){
		return "success";
	}
}

Teather_add_success.jsp:
<html>
  <head>
    <title>My JSP 'Teather_add_success.jsp' starting page</title>
  </head>
  
  <body>
    Teather add success!!!!<br>
  </body>
</html>

Teather_delete_success.jsp:
<html>
  <head>
    <title>My JSP 'Teather_add_success.jsp' starting page</title>
  </head>
  
  <body>
    Teather delete success!!!!<br>
  </body>
</html>

调用:
<a href="<%=basePath %>javaee/Teather_add">添加老师</a><br/>

<a href="<%=basePath %>javaee/Teather_delete">删除老师</a><br/>


结果读者自己思考一下吧?(动手实践)

转载请注明出处:http://blog.csdn.net/acmman/article/details/44158439


相关文章
|
12月前
|
API
简述a标签超链接target属性的取值和作用
简述a标签超链接target属性的取值和作用
ly~
|
11月前
|
存储 安全 生物认证
如何防止密码重用?
本文介绍了防止密码重用的综合措施,包括用户教育与意识提升、技术手段支持和系统设计与策略引导。通过定期的安全培训、安全提示与宣传,增强用户的安全意识;推荐使用密码管理器和账户关联检测技术,帮助用户管理复杂密码;实施多因素身份验证和密码强度检查,确保系统的安全性。
ly~
306 5
|
11月前
|
Ubuntu 机器人 语音技术
语音识别与语音控制
【10月更文挑战第4天】硬件平台 机器硬件:OriginBot(导航版/视觉版)PC主机:Windows(>=10)/Ubuntu(>=20.04)扩展硬件:X3语音版 运行案例 首先进入OriginBot主控系统,运行一下指令。请注意,部分操作OriginBot内暂未放入,请根据内容进行适当处理。 cd /userdata/dev_ws/ # 配置TogetheROS环境 source /opt/tros/setup.bash # 从tros.b的安装路径中拷贝出运行示例需要的配置文件。 cp -r /opt/tros/lib/hobot_audio/config/ . # 加载
142 4
|
KVM 虚拟化
KVM虚拟机的克隆
这篇文章介绍了如何使用KVM虚拟机进行完整克隆和链接克隆,包括手动克隆和使用virt-clone工具克隆的方法,以及如何编写脚本来实现自动化克隆和删除虚拟机。
383 3
KVM虚拟机的克隆
|
11月前
|
存储 安全 Unix
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
|
11月前
|
API 网络架构 Python
使用Python和Flask构建简单的RESTful API
【10月更文挑战第12天】使用Python和Flask构建简单的RESTful API
170 0
|
运维 Serverless 数据处理
函数计算产品使用问题之Animatediff插件怎么安装
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
数据可视化 Python
【100天精通Python】Day67:Python可视化_Matplotlib 绘制动画,2D、3D 动画 示例+代码
【100天精通Python】Day67:Python可视化_Matplotlib 绘制动画,2D、3D 动画 示例+代码
826 0
【100天精通Python】Day67:Python可视化_Matplotlib 绘制动画,2D、3D 动画 示例+代码
|
机器学习/深度学习 自然语言处理 算法
ICML 2024:零阶优化器微调大模型,大幅降低内存
【7月更文挑战第14天】ICML 2024研究表明,零阶优化用于大模型微调能大幅降低内存需求。该论文通过避免反向传播,减少LLM(大型语言模型)微调的内存开销,提出新方法,适用于资源受限环境。虽然性能可能不及一阶优化器,但为高效NLP计算开辟了新途径。论文链接:[arxiv.org/abs/2402.11592](https://arxiv.org/abs/2402.11592)**
323 3
|
机器学习/深度学习 自然语言处理 算法
【论文精读】TNNLS 2022 - 基于深度学习的事件抽取研究综述
事件抽取是从海量文本数据中快速获取事件信息的一项重要研究任务。随着深度学习的快速发展,基于深度学习技术的事件抽取已成为研究热点。文献中提出了许多方法、数据集和评估指标,这增加全面更新调研的需求。
844 0