4.Struts2中Action的三种访问方式
1.传统的访问方式
-很少使用
通过<action>标签中的method属性,访问到action中的具体方法
具体实现:
1.action代码
import com.opensymphony.xwork2.ActionSupport; /**
* action访问方式
* 演示传统的配置方式
* @author NEWHOM
*
*/
public class CustomerAction extends ActionSupport { private static final long serialVersionUID = 1L; public String add(){ System.out.println("添加Customer成功..."); return NONE;
} public String delete(){ System.out.println("删除Customer成功..."); return NONE;
} }
2.配置文件代码
<!-- 传统的配置方式 -->
<action name="Customer_add" class="com.struts2.web.action3.CustomerAction" method="add"/>
<action name="Customer_delete" class="com.struts2.web.action3.CustomerAction" method="delete"/>
3.页面代码
<h3>传统的配置方式</h3>
<a href="${pageContext.request.contextPath }/Customer_add.action">添加Customer</a>
<a href="${pageContext.request.contextPath }/Customer_delete.action">删除Customer</a>
2.通配符访问方式
-经常使用
通配符的访问方式:(访问的路径和方法的名称必须要有某种联系.) 通配符就是 * 代表任意的字符
1.action代码
/**
* action访问方式
* 演示通配符的访问方式
* @author NEWHOM
*
*/
public class UserAction extends ActionSupport{ private static final long serialVersionUID = 1L; public String add(){ System.out.println("添加User成功..."); return NONE;
} public String delete(){ System.out.println("删除User成功..."); return NONE;
} }
2.配置文件代码
<!-- 通配符的访问方式 -->
<action name="User_*" class="com.struts2.web.action3.UserAction" method="{1}"/>
3.页面代码
<h3>通配符的访问方式</h3>
<a href="${pageContext.request.contextPath }/User_add.action">添加User</a>
<a href="${pageContext.request.contextPath }/User_delete.action">删除User</a>
3.动态的访问方式
-很少使用
如果想完成动态方法访问的方式,需要开启一个常量,struts.enable.DynamicMethodInvocation = false,把值设置成true。
注意:不同的Struts2框架的版本,该常量的值不一定是true或者false,需要自己来看一下。如果是false,需要自己开启。
1.action代码
/**
* action访问方式
* 演示动态的方式
* @author NEWHOM
*
*/
public class LinkManAction extends ActionSupport{ private static final long serialVersionUID = 1L; public String add(){ System.out.println("添加LinkMan成功..."); return NONE;
} public String delete(){ System.out.println("删除LinkMan成功..."); return NONE;
} }
2.配置文件代码
<!-- 开启动态访问的常量 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/> <!-- 动态的访问方式 -->
<action name="LinkMan" class="com.struts2.web.action3.LinkManAction"/>
3.页面代码
<h3>动态方法的访问方式</h3>
<a href="${pageContext.request.contextPath }/LinkMan!add.action">添加LinkMan</a>
<a href="${pageContext.request.contextPath }/LinkMan!delete.action">删除LinkMan</a>
4.Struts2中Action的三种访问方式的更多相关文章
- Struts2之命名空间与Action的三种创建方式
看到上面的标题,相信大家已经知道我们接下来要探讨的知识了,一共两点:1.package命名空间设置:2.三种Action的创建方式.下面我们开始本篇的内容: 首先我们聊一聊命名空间的知识,namesp ...
- struts2开发action 的三种方法以及通配符、路径匹配原则、常量
struts2开发action 的三种方法 1.继承ActionSupport public class UserAction extends ActionSupport { // Action中业务 ...
- Action的三种实现方式,struts.xml配置的详细解释及其简单执行过程(二)
勿以恶小而为之,勿以善小而不为--------------------------刘备 劝诸君,多行善事积福报,莫作恶 上一章简单介绍了Struts2的'两个蝴蝶飞,你好' (一),如果没有看过,请观 ...
- Action的三种编写方式
-------------------siwuxie095 Action 的三种编写方式 在 Struts2 的应用开发中,Action 作为框架的核心类,实现 对用户请求的处理,Action 类被称 ...
- SpringMVC中HandlerMapping的三种配置方式
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE beans PUBLIC "-/ ...
- iOS中正则表达式的三种使用方式
1.利用NSPredicate(谓词)匹配 例如匹配有效邮箱: NSString *email = @“nijino_saki@163.com”: NSString *regex = @"[ ...
- java中线程的三种实现方式
一下记录下线程的3中实现方式:Thread,Runnable,Callable 不需要返回值时,建议使用Runnable:有返回值时建议使用Callable 代码如下所示: package com.f ...
- Golang中map的三种声明方式和简单实现增删改查
package main import ( "fmt" ) func main() { test3 := map[string]string{ "one": & ...
- struts2简单入门-Action的三种配置方式
普通的配置方式 优点:可读性高 缺点:重复的配置太多. 使用情况 一个actian只有一个方法,只需要处理一种请求. 代码演示 <action name="voteResult&quo ...
随机推荐
- C语言指向指针的指针
#include <stdio.h> int main() { /********************************************* * 指向指针的指针:指针变量存 ...
- MOS管知识大集
MOS管 增强型:就是UGS=0V时漏源极之间没有导电沟道,只有当UGS>开启电压(N沟道)或UGS<开启电压(P沟道)才可能出现导电沟道.耗尽型:就是UGS=0V时,漏源极之间存在导电沟 ...
- Spyder中的一些快捷键
熟练spyder中的一些快捷键后,能极大提升code效率. 这里列出常用的快捷键.(注:在spyder导航栏Tools-Preferences-Keyboard shortcut中有所有的快捷键) T ...
- Linux防火墙设置——iptables
防火墙用于监控往来流量,并根据用户定义的规则来过滤数据包以保证安全.iptables是Linux下设置防火墙规则的常用工具,它可以让你设置.维护以及查看防火墙的规则表.你可以定义多个表,每个表可以包含 ...
- bzoj1050题解
[解题思路] 先把边按边权排序,然后O(m)暴力枚举最小边,对于每条最小边,将比其大的边按序加入直到起终点连通,此时最大边权/最小边权即为选择该最小边情况下的最小比值.复杂度O(m(m+n)α(n)) ...
- Python_day01——变量
变量 1.声明变量 name="钱成龙" 变量定义的规则: 变量名只能是 字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 关键字不能声明为变量名 2.变量类型 整 ...
- Transactional事务管理操作
Transactional的属性: alue String 可选的限定描述符,指定使用的事务管理器 propagation enum: Propagation 可选的事务传播行为设置 isolatio ...
- php开发面试题---vue面试题(vue.js的好处及作用)
php开发面试题---vue面试题(vue.js的好处及作用) 一.总结 一句话总结: 双向数据绑定:在做ajax的时候,更新实在是太方便了 用数据绑定的思想,vue可以简单写单个页面,也可以写一个大 ...
- AMS算法
#include<stdio.h> #include<stdlib.h> #include<time.h> #define N 1000//采样点的个数 #defi ...
- (2)centos7 图形界面
1.登录 2.先安装MATE可视化桌面 yum groups install "MATE Desktop" 选择y 3.安装X Window System:图形接口 yum gro ...