您的位置:首页 > 编程语言 > Java开发

struts2动态方法调用

2021-04-21 22:51 676 查看

上一章节学习了struts2的常量配置,本章节学习的struts2的方法动态调用和上一章节有所关联,相当于struts2常量配置的进阶版~详细学习如下


struts2动态方法调用

  • 《本章完》
  • [/ul]


    1、struts2动态方法调用

    首先,准备一个action类,类名B_dynamic,这个类中存在多个业务,比如增删改查用户,简单的调用返回success并打印到控制台相应的文字;设计如下:

    B_dynamic:

    package com.java.B_dynamic;
    
    public class Demo1 {
    public String add() {
    System.out.println("添加---");
    return "success";
    }
    public String delete() {
    System.out.println("删除---");
    return "success";
    }
    public String update() {
    System.out.println("更新---");
    return "success";
    }
    public String select() {
    System.out.println("查找---");
    return "success";
    }
    }

    1.1、动态方法调用方式

    动态调用的方法有两种,分别是:
    【1】和常量配置有关的动态方法调用
    【2】和常量配置无关的通配符思想动态方法调用
    下面就这两种进行详细学习~

    1.2、和常量配置有关的动态方法调用

    首先,在核心配置文件中配置上动态方法调用,将默认的false的值(关闭状态)设置成true(打开状态);其name值和value值都可以在struts. Properties文件中找到,上文中常用的常量列表中也有介绍;

    开启动态调用配置代码如下所示(在核心配置文件中的),需要注意的是在下面的代码中action标签中并不会存在method属性;

    配置好后直接输入相应的路径,在输入完action的名称后在其名称后加上感叹号“!”,英文状态下的,然后在感叹号后边添加相应方法的方法名,点击回车即可看到控制台中输出的相应的方法中配置输出的文字;

    1.3、和常量配置无关的通配符思想动态方法调用

    这种动态调用方法的方式其编写思路和常量的配置无关,使用的是通配符占位的思路,其代码很容易,只要在核心配置文件中的action标签中的name属性的属性值设置成“xxx_*”以及将method属性的属性值写成“{1}”即可;
    其设置如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
    
    <package name="dynamic" namespace="/dynamic" extends="struts-default">
    <action name="Demo1_*" class="com.java.B_dynamic.Demo1" method="{1}">
    <result name="success">/dynamic.jsp</result>
    </action>
    </package>
    </struts>


    其访问方法为,直接将方法名写在下划线后边即可;

    当在jsp页面中进行表单的提交跳转某个action类时应当写为(按照上面的为例子):href="${pageContext.request.contextPath}/Demo1_xxx",这个xxx是写死的,代表了此操作应连接哪个方法名~
    只有这样才是真正的动态方法调用,既是在跳转前就配置好所要进行操作的方法;

    1.4、动态方法调用方式总结

    最常用的还是第二种,以通配符思想进行动态调用的方式~

    pass:下一章节学习struts2中action方法创建方式~

    《本章完》

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: