SSH整合中,使用父action重构子类action类.(在父类中获取子类中的泛型对象)
- import java.lang.reflect.ParameterizedType;
- import java.lang.reflect.Type;
- import com.opensymphony.xwork2.ActionSupport;
- import com.opensymphony.xwork2.ModelDriven;
- /**
- * 文件名 : BaseAction.java
- * 提取SSH中的action类
- * 由于SSH的action中采用模型驱动的方法,使用泛型的方式
- */
- public class BaseAction<T> extends ActionSupport implements ModelDriven<T> {
- /*
- * 实例化父类对象,提供model
- */
- public BaseAction() {
- // 获取子类中的泛型对象,当创建子类对象时候,会默认使用super()构造父类对象,而此时使用this关键字,指向的是子类的实例.
- Type genericSuperclass = this.getClass().getGenericSuperclass();
- ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;
- Class<T> clazz = (Class<T>) parameterizedType.getActualTypeArguments()[0];
- try {
- model = clazz.newInstance();
- } catch (InstantiationException | IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- //采用模型驱动的方式
- protected T model;
- @Override
- /*
- * (提取父类的抽象类的模型代码)
- *
- * @see com.opensymphony.xwork2.ModelDriven#getModel()
- */
- public T getModel() {
- return model;
- }
- /**
- * 后面就可以继续提取子类action的共同的参数和方法了.
- */
- }
SSH整合中,使用父action重构子类action类.(在父类中获取子类中的泛型对象)的更多相关文章
- springboot中spring.profiles.active来引入多个properties文件 & Springboot获取容器中对象
1. 引入多个properties文件 很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据, ...
- SSH整合报错:Unable to instantiate Action, testAction, defined for 'test' in namespace '/'testAction
报错如下: Struts Problem Report Struts has detected an unhandled exception: Messages: testAction Unable ...
- SSH整合报错:No result defined for action and result input
目前发现这个问题主要是在Action中的execute返回值时,没有对应的result name而引起的.很有可能是由于程序执行中出错了,但是对 应的Action中没有添加 input的result ...
- iOS中的分类(category)和类扩展(extension)
今天在研究swift的时候看到了分类和扩展.这是两个十分重要有用的功能,但是之前用的不多,没有深入了解过,在今天就从头理一遍. 一.分类(Category): 概念: 分类(Category)是OC中 ...
- 安卓Android控件ListView获取item中EditText值
可以明确,现在没有直接方法可以获得ListView中每一行EditText的值. 解决方案:重写BaseAdapter,然后自行获取ListView中每行输入的EditText值. 大概算法:重写Ba ...
- 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理
[源码下载] 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理 作者:webabcd 介绍背水一战 Windows 10 ...
- Java非递归的方式获取目录中所有文件(包括目录)
零.思路解析 对于给出的文件查看其下面的所有目录,将这个目录下的所有目录放入待遍历的目录集合中,每次取出该集合中的目录遍历,如果是目录再次放入该目录中进行遍历. 一.代码 /** * 非递归的方式获取 ...
- 【python】获取列表中最长连续数字
最近开发遇到一个功能需求,目的是要获取一个AI分析结果中最长连续帧,比如一个视频中连续3帧有人,那么我认为这个视频就是有人,我就要判断这个视频帧列表中是否有连续的三帧有人.本质就是获取列表中的最长连续 ...
- SSH整合:Unable to instantiate Action, employeeAction, defined for 'emp-list' in namespace '/'employeeAction - action
SSH整合,照着视频敲的,不知为何会报错,经历了快两周的折磨给解决了.记录下来给后面需要帮助的人,也算极好的了. Struts Problem Report Struts has detected a ...
随机推荐
- Groovy学习()面向Java开发者的Groovy
第一段Groovy代码 // first groovy program for(int i = 0; i < 3; i++) { System.out.println("ho &quo ...
- javascript 学习笔记(1)
一.引入js方法 js引入(内部.外部). 内部方法引入js可以放到html文档的任何地方方法alert();可以弹出一个对话框 二.注意事项 注释: 单行注释 // 多行注释 /*注释内容*/大小写 ...
- eclipse 灵活使用makefile来编译C/C++
需求: 近期在看<C++ Primer Plus>, 作者在不断优化自己的类.有很多不同的版本号,有非常多的測试函数(main函数),我使用的是eclipse+CDT来编写C++,不可能为 ...
- keepalive的作用
keepalive的作用是实现高可用,通过VIP虚拟IP的漂移实现高可用.在相同集群内发送组播包,master主通过VRRP协议发送组播包,告诉从主的状态. 一旦主挂了从就选举新的主,实现高可用 LV ...
- 微信小程序 - 开发工具之编译模式
在开发中,遇到一个层级较深的页面,每次都要点击好多步才能调试,也比较闹心,有了自定义编译模式,就方便很多了 点击红圈处, 选择 "+添加编译模式" , 默认的, 启动页面会填入当前 ...
- 【python】matplotlib中文乱码问题
http://www.pythoner.com/200.html 改matplotlibrc文件进入Python安装目录下的Lib\site-packages\matplotlib\mpl-data目 ...
- linux通过shell脚本修改文件内容
sed -i 's/abc/xxx/g' file abc修改前的字符串xxx是修改后的字符串file是要被修改的文件
- a标签点击后,给a标签添加样式
window.onload=function(){ var a = document.getElementById("cate").getElementsByTagName(&qu ...
- 重写equals()方法也要重写hashcode()方法
如果我们对equals方法进行了重写,建议一定要对hashCode方法重写,以保证相同的对象返回相同的hash值,不同的对象返回不同的hash值.
- 83、android的消息处理机制(图+源码分析)——Looper,Handler,Message
转载:http://www.cnblogs.com/codingmyworld/archive/2011/09/12/2174255.html https://my.oschina.net/u/139 ...