详解Struts2动态方法调用

发布时间 - 2026-01-11 03:26:47    点击率:

 动态方法就是一个Action对应多个请求,减少Action的数量

1、指定method属性

<action name="addAction" method="add" class="com.venn.action.HelloWorldAction">
<result>/jsp/add.jsp</result>
</action>

2、感叹号(!)方式(不推荐使用)

<action name="HelloWorld" class="com.venn.action.HelloWorldAction">
   <result>/jsp/test.jsp</result>
  <result name="add">/jsp/add.jsp</result>
  <result name="update">/jsp/update.jsp</result>
</action>

需要在struts.xml中加入如下常量:

<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>(加在package标签外面)

调用不同方法使用:

访问execute方法: http://localhost:8080/TestStruts2/HelloWorld.action

访问update方法: http://localhost:8080/TestStruts2/HelloWorld!update.action

访问add方法 http://localhost:8080/TestStruts2/HelloWorld!add.action

3、通配符方式

Action配置:

<action name="HelloWorld_*" method="{1}" class="com.venn.action.HelloWorldAction">
<result>/jsp/test.jsp</result>
<result name="add">/jsp/add.jsp</result>
<result name="update">/jsp/update.jsp</result>
</action>

访问execute方法: http://localhost:8080/TestStruts2/HelloWorld.action 或http://localhost:8080/TestStruts2/HelloWorld_execute.action

访问add方法 http://localhost:8080/TestStruts2/HelloWorld_add.action

注:为简化struts.xml配置,可以将action配置为:

<action name="*_*_*" method="{2}" class="com.venn.{3}.{1}Action">
<result>/jsp/test.jsp</result>
<result name="add">/jsp/{2}.jsp</result>
<result name="update">/jsp/{2}.jsp</result>
</action>

 

第一个*对应action,第二个*对应method

注意result标签的name属性不可以使用通配符

java类

public class HelloWorldAction extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("execute method");
return "success";
}
public String add(){
System.err.println("add method");
return "add";
}
public String update(){
System.out.println("update method");
return "update";
}
}

总结

以上就是本文关于详解Struts2动态方法调用的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:struts2开发流程及详细配置   Struts2修改上传文件大小限制方法解析等,有什么问题可以随时留言,小编会尽快回复大家。


# struts2  # 动态方法调用  # action  # Struts2 通过ognl表达式实现投影  # Struts2 OGNL表达式实例详解  # Struts2修改上传文件大小限制方法解析  # AjaxFileUpload+Struts2实现多文件上传功能  # struts2开发流程及详细配置  # struts+spring+hibernate三个框架的整合  # Struts2获取参数的三种方法总结  # 有什么  # 第一个  # 多个  # 不可以  # 推荐使用  # 感兴趣  # 第二个  # 可以随时  # 小编  # 加在  # 上传  # result  # gt  # enable  # struts  # jsp  # constant  # xml  # update  # HelloWorld 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 在Oracle关闭情况下如何修改spfile的参数  Laravel怎么在Controller之外的地方验证数据  Android自定义listview布局实现上拉加载下拉刷新功能  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  音响网站制作视频教程,隆霸音响官方网站?  中山网站制作网页,中山新生登记系统登记流程?  EditPlus中的正则表达式 实战(1)  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  jquery插件bootstrapValidator表单验证详解  Laravel怎么调用外部API_Laravel Http Client客户端使用  Laravel如何创建自定义中间件?(Middleware代码示例)  详解jQuery停止动画——stop()方法的使用  香港服务器选型指南:免备案配置与高效建站方案解析  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  iOS UIView常见属性方法小结  Android滚轮选择时间控件使用详解  JavaScript实现Fly Bird小游戏  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何在万网ECS上快速搭建专属网站?  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  创业网站制作流程,创业网站可靠吗?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  如何在IIS中新建站点并配置端口与物理路径?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Android仿QQ列表左滑删除操作  Laravel如何实现事件和监听器?(Event & Listener实战)  如何在宝塔面板中创建新站点?  如何快速搭建高效香港服务器网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel如何创建自定义Facades?(详细步骤)  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  微信小程序 canvas开发实例及注意事项  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  JS去除重复并统计数量的实现方法  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Laravel Session怎么存储_Laravel Session驱动配置详解  JS碰撞运动实现方法详解  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  如何在香港免费服务器上快速搭建网站?  *服务器网站为何频现安全漏洞?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  如何快速搭建支持数据库操作的智能建站平台?