上一章节学习了struts2的常量配置,本章节学习的struts2的方法动态调用和上一章节有所关联,相当于struts2常量配置的进阶版~详细学习如下
struts2动态方法调用
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方法创建方式~