struts2 中 Preparable 接口实现数据准备
今天才知道struts还有Preparable接口,实现此接口需要实现其prepare()方法,调用action中其他方法之前会先调用prepare()方法。此接口和方法可以用于初始化一些数据。
测试代码:
package cn.qlq.action;import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result;import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.Preparable;@Namespace("/") @ParentPackage("default") public class FirstAction extends ActionSupport implements Preparable {private static final long serialVersionUID = 1L;private String test;@Overridepublic void prepare() throws Exception {System.out.println("这是所有方法前的处理");}@Action(value = "test", results = { @Result(name = "success1", location = "/index2.jsp", type = "redirect") ,@Result(name = "error", location = "/index2.jsp") ,@Result(name = "success" ,type = "json" , params = {"root","test"}) })@Overridepublic String execute() throws Exception {test = "test";return super.execute();}public String getTest() {return test;}public void setTest(String test) {this.test = test;}}
当我们访问execute方法的时候会先执行prepare()方法。
另外,当action种有一个方法叫做haha(),我们可以定义一个prepareHaha()方法,则在访问haha()之前会先访问prepareHaha(),再访问prepare(),最后访问haha(),如下代码:
package cn.qlq.action;import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result;import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.Preparable;@Namespace("/") @ParentPackage("default") public class FirstAction extends ActionSupport implements Preparable {private static final long serialVersionUID = 1L;private String test;@Overridepublic void prepare() throws Exception {System.out.println("这是所有方法前的处理");}@Action(value = "test", results = { @Result(name = "success1", location = "/index2.jsp", type = "redirect") ,@Result(name = "error", location = "/index2.jsp") ,@Result(name = "success" ,type = "json" , params = {"root","test"}) })@Overridepublic String execute() throws Exception {test = "test";return super.execute();}public void prepareHaha() {System.out.println("haha 执行前面");}@Action(value = "haha" ,results ={@Result(name = "success", location = "/index2.jsp", type = "redirect")} )public String haha() throws Exception {return super.execute();}public String getTest() {return test;}public void setTest(String test) {this.test = test;}}
结果:
haha 执行前面
这是所有方法前的处理
struts2 中 Preparable 接口实现数据准备相关推荐
- Struts2实现Preparable接口和【struts2】继承ActionSupport类
Struts2实现Preparable接口 实现preparable接口,实现public void prepare() throws Exception 方法.当你访问某问action指定方法之前, ...
- springboot项目拦截器中获取接口返回数据_Spring Boot自定义Annotation实现接口自动幂...
在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同.按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重 ...
- struts2中表现层的数据展现(bean,list,iterator,format,etc)
假定在Action中通过get/set了绑定了一个ModelAndView 的bean,用于渲染页面的数据.在实际的开发中,这个bean可能包含了各种页面需要的信息,因此会相当复杂. 设定:bean ...
- Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法...
Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法 www.MyException.Cn 发布于:2012-09-15 ...
- Struts2中采用Json返回List对象数据为空解决方案
Struts2中采用Json返回List对象数据为空解决方案 参考文章: (1)Struts2中采用Json返回List对象数据为空解决方案 (2)https://www.cnblogs.com/wa ...
- boot spring 接口接收数据_在 Spring Boot 中使用 Dataway 配置数据查询接口
Dataway介绍 Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具.使得使用者无需开发任何代码就配置一个满足需求的接口. 整个接口配置.测试.冒烟.发布.一站式都通过 ...
- java从端口获取数据库_Java之通过接口获取数据并用JDBC存储到数据库中
最近做数据同步功能,从接口获取数据然后存到数据库中以便后续对数据进行相关操作,下面就贴一下相关代码. 1 import com.alibaba.fastjson.JSON; 2 import com. ...
- antd pro中如何使用mock数据以及调用接口
antd pro的底层基础框架使用的是dva,dva采用effect的方式来管理同步化异步 在dva中主要分为3层 services models components models层用于存放数据 ...
- vue获取接口数据_c#中HttpWebRequest调用接口获取数据
c#中HttpWebRequest调用接口获取数据PART 01-封装接口 将post请求进行封装,以便调用使用: /// /// 请求后台地址/// 请求参数/// public string P ...
最新文章
- 关于深度残差收缩网络,你需要知道这几点
- 查看Unix/Linux的CPU个数和内存大小,系统位数(转载)
- 将Python源码编译成pyc和pyo文件
- Linux执行yum不显示时间图形,Linux停的yum命令详解(朝花夕拾)
- 基础功能-tensorflow使用gpu
- 2021年科技赋能中医药产业发展报告
- android listview 向上自动滚动效果,Android通过代码控制ListView上下滚动的方法
- Python操作文件文档
- Oracle新建数据库和用户及表空间
- 信息论基础——消息,信息,信号区别 信息的度量
- osgearth 利用经纬度得到高程
- 20220906_C52单片机学习笔记 | LED闪烁
- 诗歌九 声律启蒙(云对雨,雪对风,晚照对晴空)
- Leo个人MSN简明使用手册
- 仅 300 员工却垄断全球,几亿一台还供不应求……
- cad页面布局快捷键_CAD页面设置管理器快捷键命令(如何设置页面布局)
- 中国传媒大学GPA算法
- 使用MySQL管理工具-SQLyog 9.63报错号码2058,超详细解析
- 计算机用户名密码不知道了怎么改,电脑系统账号administrator设置了密码,密码忘记了怎么办?...
- 基于Java毕业设计研究生推免系统源码+系统+mysql+lw文档+部署软件
热门文章
- wifi动不动就断开_手机信号满格,但是WIFI经常掉线!我来教你怎么办
- 计算机机房规范管理,计算机中心机房建设及管理规范.doc
- js调用python脚本_javascript – 如何从NodeJs调用python脚本
- php功能与特性,PHP 6将实现的8个特性和功能
- mysql大于等于怎么写_数据库中大于等于0小于等于100怎样表达
- idea可以使用flash框架吗_这个框架厉害了,使用它几分钟就可以编写一个微信插件...
- 进入页面先刷新一次_转盘抽奖分享得积分,防止页面被恶意
- java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...
- 使用Poi读取xlsx类型的Excel
- 看看那些令你惊叹的PCB设计艺术