专栏首页行者常至(13)Struts2_动态方法调用(了解)

(13)Struts2_动态方法调用(了解)

Struts2_动态方法调用

动态方法调用: 通过 url 动态调用 Action 中的方法

action 声明:

        <action name="dynaminMethodInvocation" class="com.qbz.struts2_02.DynamicMethodInvocationTest" method="save">
            <result> /index.jsp</result>
        </action>

当访问请求为dynaminMethodInvocation时。

<a href="dynaminMethodInvocation.action">动态方法调用测试</a>

执行com.qbz.struts2_02.DynamicMethodInvocationTest.java的save方法

package com.qbz.struts2_02;

import com.opensymphony.xwork2.ActionSupport;

public class DynamicMethodInvocationTest extends ActionSupport{


    public String save(){
        System.out.println("save ... ");
        return SUCCESS;
    }

    public String update(){
        System.out.println("update ... ");
        return SUCCESS;
    }
}

输出打印:

save ... 

动态方法调用默认是禁止的,若要启用,需先找到定义的常量:

struts.enable.DynamicMethodInvocation

在struts.xml中启用:

<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

启用后再次访问请求

<a href="dynaminMethodInvocation.action">动态方法调用测试</a>

输出打印仍为:

save ... 

现在修改请求为:

<a href="dynaminMethodInvocation!update.action">动态方法调用测试</a>

输出打印为:

update ... 

结论

默认情况下, Struts 的动态方法调用处于禁用状态

动态方法调用: 通过 url 动态调用 Action 中的方法

<!-- 调用struts.xml中配置的action为dynaminMethodInvocation的类中配置的方法,方法未定义默认为execute -->
http://localhost:8080/struts2-04/dynaminMethodInvocation.action
<!-- 调用struts.xml中配置的action为dynaminMethodInvocation的类中的 update 方法,此方法可以不在struts.xml中配置 -->
http://localhost:8080/struts2-04/dynaminMethodInvocation!update.action

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hibernate中 对象 的三种状态

    qubianzhong
  • 继承的父类的request属性为啥 用不了?

    qubianzhong
  • vim 常用命令

    qubianzhong
  • sl-im 基于 Swoft 微服务协程框架和 Layim 网页聊天系统 开发出来的聊天室

    sl-im 是基于 Swoft 微服务协程框架和 Layim 网页聊天系统 所开发出来的聊天室。

    gaobinzhan
  • Mybatis案例升级版——小案例大道理

    这几天看了一本书《原则》,在上面看到了一句话叫“每个人都把自己眼界的局限当成世界的局限”,大学生是?,大学就是鱼缸,世界很大,希望大家好好努力,不要让“贫穷”限...

    泰斗贤若如
  • 2小时入门Spark之MLlib

    最近由于一直在用Spark搞数据挖掘,花了些时间系统学习了一下Spark的MLlib机器学习库,它和sklearn有八九分相似,也是Estimator,Tran...

    lyhue1991
  • 微信小程序入门《四》实例:导航栏样式、tabBar导航栏

    实例内容 导航栏样式设置 tabBar导航栏 实例一:导航栏样式设置 小程序的导航栏样式在app.json中定义。 这里设置导航,背景黑色,文字白色,文字内容测...

    极乐君
  • Android自定义View——从零开始实现书籍翻页效果

    前言:在上篇Android自定义View——从零开始实现书籍翻页效果(二)博客中,我们 补全了翻页效果以及增加了 取消翻页的动画,这期要教大家如何 向View填...

    用户2802329
  • 产品前端重构(TypeScript、MVC框架设计)

    最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容。 公司期望把某一管理类信息系统从项目代码中抽取、重构为一个可复用的产品。该系统的...

    用户1172223
  • Hadoop Reducer总是能复用为Combiner?

    Combiner函数是一个可选的中间函数,发生在Map阶段,Mapper执行完成后立即执行。使用Combiner有如下两个优势:

    smartsi

扫码关注云+社区

领取腾讯云代金券