Struts2框架之Action类的访问
1. 通过<action>标签中的method属性,访问到Action中的具体的方法。
* 传统的配置方式,配置更清晰更好理解!但是扩展需要修改配置文件等!
* 具体的实例如下:
* 页面代码
* <a href="${pageContext.request.contextPath}/addBook.action">添加图书</a>
* <a href="${pageContext.request.contextPath}/deleteBook.action">删除图书</a>
* 配置文件的代码
<package name="demo2" extends="struts-default" namespace="/">
<action name="addBook" class="cn.huida.demo2.BookAction" method="add"></action>
<action name="deleteBook" class="cn.huida.demo2.BookAction" method="delete"></action>
</package>
* Action的代码
public String add(){
System.out.println("添加图书");
return NONE;
}
public String delete(){
System.out.println("删除图书");
return NONE;
}
2. 通配符的访问方式:(访问的路径和方法的名称必须要有某种联系.) 通配符就是 * 代表任意的字符(通常使用通配符的方式进行访问)
* 使用通配符的方式可以简化配置文件的代码编写,而且扩展和维护比较容易。
* 具体实例如下:
* 页面代码
<a href="${pageContext.request.contextPath}/order_add.action">添加订单</a>
<a href="${pageContext.request.contextPath}/order_delete.action">删除订单</a>
* 配置文件代码
* <action name="order_*" class="cn.huida.demo2.OrderAction" method="{1}"></action>
* Action的代码
public String add(){
System.out.println("添加订单");
return NONE;
}
public String delete(){
System.out.println("删除订单");
return NONE;
}
* 具体理解:在JSP页面发送请求,http://localhost/struts2_01/order_add.action,配置文件中的order_*可以匹配该请求,*就相当于变成了add,method属性的值使用{1}来代替,{1}就表示的是第一个*号的位置!!所以method的值就等于了add,那么就找到Action类中的add方法,那么add方法就执行了!
3. 动态方法访问的方式(有的开发中也会使用这种方式)
* 如果想完成动态方法访问的方式,需要开启一个常量,struts.enable.DynamicMethodInvocation = false,把值设置成true。
* 注意:不同的Struts2框架的版本,该常量的值不一定是true或者false,需要自己来看一下。如果是false,需要自己开启。
* 在struts.xml中开启该常量。
* <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
* 具体代码如下
* 页面的代码
* <a href="${pageContext.request.contextPath}/product!add.action">添加商品</a>
* <a href="${pageContext.request.contextPath}/product!delete.action">删除商品</a>
* 配置文件代码
* <action name="product" class="cn.huida.demo2.ProductAction"></action>
* Action的类的代码
public class ProductAction extends ActionSupport{
public String add(){
System.out.println("添加订单");
return NONE;
}
public String delete(){
System.out.println("删除订单");
return NONE;
}
}
Struts2框架之Action类的访问的更多相关文章
- Struts2框架(4)---Action类访问servlet
Action类访问servlet Action类有三种方式servlet: (1)间接的方式访问Servlet API ---使用ActionContext对象 (2) 实现接口,访问Action ...
- Struts2框架(3)---Action类的3种书写方式
Action类的3种书写方式 本文主要写有关写Action类的3种书写方式: (1)第一种 Action可以是POJO (简单模型对象) 不需要继承任何父类 也不需要实现任何接口 (2)实现Acti ...
- Struts2中的Action类(解耦方式,耦合方式)
一.解耦方式 特点:对web资源进行了封装,便于单元测试. 实现:ActionContext和接口方式 1.ActionContext 特点:Action执行的上下文对象.保存了执行Action所需要 ...
- Struts2框架里面action与前端jsp页面进行交互路径问题---》一个对话框里面有很多超链接,进行相应的跳转
一个对话框里面有很多超链接,右边是点击超链接跳转到的相应页面(在一个页面上就相当于点击该超链接时候,就把该简短页面置顶):这个问题困扰我两天:还请大神给我解决,也没有解决,我仔细对比了相关路径,后面添 ...
- Struts2框架(5)---result结果集
result结果集 上一篇文章主要讲Struts2框架(4)---Action类访问servlet这篇主要讲result结果集 在Struts.xml中的result元素指的是:指定动作类的动作方法执 ...
- struts2框架 转载 精华帖
一.Struts2简介 参考<JavaEE 轻量级框架应用与开发—S2SH> Struts框架是流行广泛的一个MVC开源实现,而Struts2是Struts框架的新一代产品,是将Strut ...
- Struts2基础-1- 简单java类实现Action控制器
Strut2中,Action可以不继承任何特殊的类或不实现任何特殊的接口,可以只编写一个普通的Java类作为Action类,只要该类含有一个返回字符串的无参的public方法即可!实际开发中,通常继承 ...
- [ SSH框架 ] Struts2框架学习之一
一.Struts2框架的概述 Struts2是一种基于MVC模式的轻量级Web框架,它自问世以来,就受到了广大Web开发者的关注,并广泛应用于各种企业系统的开发中.目前掌握 Struts2框架几乎成为 ...
- struts2框架学习之第一天
day01 Struts2概述 1 什么是框架 试想一下,人与人之间不同之处多,还是相同之处多呢?当然是相同之处多,不同之处少!人都有头,而且头都在脖子上面! 软件之间也是相同之处多,不同之处少,框架 ...
随机推荐
- 遍历DOM树,链式操作
如果需要在同一个选取结果上使用多个jQuery方法,可以同时列出这些方法,并用.隔开,如下面的代码. 1 $("#one").hide().delay(500).fadeIn(15 ...
- Windows Server 2008 R2微软官方下载
注意:Windows Server 2008 R2仅有64位版本. 以下下载地址为Windows Server 2008 R2 RTM Build 7600.16385的评估版本,此版本可免费试用18 ...
- 如何配置eclipse的安卓SDK下载目录
首先,打开eclipse,主界面如图 2 点击Windows下的preference 3 然后在出现的对话框中选择“android” 4 然后我们就能看到的主界面,在这里输入android sdk的目 ...
- ubuntu16.04 64bit 升级到 python3.6
https://blog.csdn.net/zhao__zhen/article/details/81584933 https://www.codetd.com/article/1967538 htt ...
- js循环对象,(多层数组)
javaScript遍历对象.数组总结 在日常工作过程中,我们对于javaScript遍历对象.数组的操作是十分的频繁的,今天抽空把经常用到的方法小结一下,方便今后参考使用! javaSc ...
- 2018面向对象程序设计(Java) 第2周学习指导及要求
2018面向对象程序设计(Java) 第2周学习指导及要求(2018.9.3-2018.9.9) 学习目标 适应老师教学方式,能按照自主学习要求完成本周理论知识学习: 掌握Java Applica ...
- 加载 AssetBundle 的四种方法
[加载 AssetBundle 的四种方法] 1.AssetBundle.LoadFromMemoryAsync(byte[] binary, uint crc = 0); 返回AssetBundle ...
- 如何解决cacti的snmp error
第一,确定cacti所有的主机能ping通被监控主机:如果不能ping通,请确认网络配置和被监控主机的ip设置是否正确. 第二,如果能ping通,那么确认被监控主机是否启用snmpd服务: ps -e ...
- CSS中的通用字体
往往设计师在设计时一厢情愿地去思考问题,那样会带来很多潜在的麻烦.事实上你可以为网页设计任意字体,包括艺术字体.也许你的计算机中已经安装了很多字体,但是不能够保证所有的浏览者都已经安装了相同的字体,因 ...
- MQ中间件死信队列深度不断增加问题解决案例
感谢作者: http://www.wo81.com/tec/mid/mq/2014-04-14/94.html MQ中间件死信队列深度不断增加问题解决案例 ❞ ☜ ☞ 作者:彭新 日期:2014-0 ...