博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2 | struts.xml文件中使用method属性和通配符简化action标签和Action处理类的编写...
阅读量:5876 次
发布时间:2019-06-19

本文共 1759 字,大约阅读时间需要 5 分钟。

转自:https://www.jianshu.com/p/310e89ee762d

在Struts2框架中,我们知道基本的Action标签只能实现一个url请求对应一个Action处理类。那么我们如果有三个action请求,我们就需要在struts.xml中写三个action标签,同时还需要写三个对应的Action处理类。

例如:

1、我有三个url请求,分别对应增加用户,删除用户和修改用户的三个功能:

增加用户增加用户增加用户

2、那么我就需要对应编写三个Action处理类,同时在struts.xml中配置三个action标签,如下:

这样做功能上虽然没有什么问题,但是如果我项目功能较多,那么就需要编写大量的Action类,并在struts.xml中配置大量action标签,这样会造成大量冗余代码。

那么有没有办法可以让一个Action类处理多个url请求呢?当然有!那就是:


  • 使用action标签中的method属性使一个Action类处理多个不同的Url请求

代码示例:

1、还是上面三个url请求,代码就不重复写了

2、在同一个Action中编写这三个功能的逻辑

public class UserAction extends ActionSupport{     public String addUser(){          Sysotem.out.println("增加用户方法被执行了");          return NONE;     }     public String deleteUser(){          Sysotem.out.println("删除用户方法被执行了");          return NONE;     }     public String modifyUser(){          System.out.println("修改用户的方法执行了");          return NONE;     }}

3、然后在action标签中使用method属性即可以将这三个url请求都引导到UserAction中执行对应的方法

通过这样的方式,我们就可以简化Action处理类的数量,将一些功能逻辑放在一个Action中,再通过struts.xml文件中的action标签的method属性就可以实现多个请求对应一个Action

但是struts.xml文件中的action标签还是很多,每一个url请求都要写一个action标签,那么能不能一个action标签处理所有的url请求呢?程序猿怎么能说自己不能!


  • 使用method属性配合通配符实现一个Action类、一个action标签处理多个url请求

代码示例:

1、修改请求页面的url请求地址

增加用户增加用户增加用户

2、在action标签中配合使用method属性和通配符

当url请求匹配到"userAction_"字段时,通配符*会自动匹配请求过来的url后面部分,method属性"{n}",n代表前面name属性中第n个通配符,然后自动执行Action类中相对性的方法。

例如:当我请求userAction_addUser.action时,* = addUser,此时{1} = addUser,那么此时这个action标签就变成了"<action name="userAction_addUser" class="com.demo.UserAction" method="addUser"></action>",此时这个url请求就会直接分配到UserAction类中的addUser()方法执行。以此类推。

由此,使用action标签中的method属性配合通配符可以极大的简化Action类和struts.xml文件中action标签的编写工作。

作者:Asimov 链接:http://www.jianshu.com/p/310e89ee762d 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
你可能感兴趣的文章
专访阿里 iDST 语音组总监鄢志杰:智能语音交互从技术到产品,有哪些坑和细节要注意?...
查看>>
传流媒体音乐服务提供商Pandora将对外出售
查看>>
《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一3.2 基于代价的查询转换...
查看>>
东芝首发15nm eMMC闪存:速度飙升140%
查看>>
《工业控制网络安全技术与实践》一一2.8 本章习题
查看>>
特朗普会见美国IT企业领导人 苹果微软亚马逊等公司代表出席
查看>>
这么多想做芯片的为啥只有它成了?
查看>>
cas原理介绍
查看>>
苹果系统漏洞频现 锁屏密码完全失效
查看>>
资深算法工程师眼中的深度学习:Ian Goodfellow 和Yoshua Bengio的「Deep Learning」读书分享...
查看>>
新型城镇化3.0时代 数据交换是“智慧城市”的核心
查看>>
SonarQube代码质量管理平台的配置与使用--持续集成篇
查看>>
Elatec推出TWN4 MultiTech 2蓝牙低功耗(BLE)RFID读卡器
查看>>
“没有数据源”是个伪命题
查看>>
美国含有2.9亿护照记录与1.8亿签证记录的数据库存在安全漏洞
查看>>
针对存储和网络应用 Mellanox推出全新BlueField系列SoC可编程芯片
查看>>
车联网将推动新能源汽车租赁发展
查看>>
让现代数据中心网络焕发新生的两个秘诀
查看>>
保险承保金融信用风险 大数据整合提升行业效率
查看>>
Arista思科网络专利案,Arista又赢一回合
查看>>