博客
关于我
强烈建议你试试无所不能的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 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
你可能感兴趣的文章
7 数字基带传输(二)
查看>>
SPRING SECURITY JAVA配置:Web Security
查看>>
Astah 使用 流程图、类图、时序图
查看>>
项目中的导出(jxl插件)
查看>>
[Transducer] Lazyness in Transduer
查看>>
Maven pom.xml中添加指定的中央仓库
查看>>
STM32 Systick定时器
查看>>
云计算相关术语大收罗
查看>>
Android 中自定义属性(attr.xml,TypedArray)的使用!
查看>>
三维数字地球发布平台探索--几款开源软件介绍(转)
查看>>
【技术文档】《算法设计与分析导论》R.C.T.Lee等·第5章 树搜索策略
查看>>
清理系统垃圾
查看>>
js模版引擎handlebars.js实用教程——结束语
查看>>
贪心算法-霍夫曼编码
查看>>
OAF_文件系列11_实现OAF读写Excel包JXL和POI的区别(概念)
查看>>
构造AJAX参数, 表单元素JSON相互转换
查看>>
error:No buffer space available (maximum connections reached
查看>>
hdu 2059 龟兔赛跑(dp)
查看>>
流行的ios开源项目
查看>>
正整数和小数的正则写成自定义插件
查看>>