灵活封装Struts2的action类
来源:互联网 发布:淘宝数据魔方下线 编辑:程序博客网 时间:2024/06/08 04:10
<pre code_snippet_id="201258" snippet_file_name="blog_20140223_1_4157116" name="code" class="java">package cn.lhzd.tool;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;/** *获取子类传递的泛型对象 *clazz 继承者对象的:为(this.class) *return 泛型数组中的对象 */@SuppressWarnings("rawtypes")public class ClassTool {public static Class GenericInstantiation(Class clazz) {//返回clazz的父类类型。Type type = clazz.getGenericSuperclass();//转为Type的子类ParameterizedType类,通过它可以获取到对象 类型的泛型数组ParameterizedType parameter = (ParameterizedType) type;//获取对象obj<T>中的泛型对象。如<User,Order>,0索引表示第一个userclazz = (Class) parameter.getActualTypeArguments()[0];//返回给调用者return clazz;}}
</pre><strong>让action继续BaseAction类。</strong><pre>package cn.lhzd.web.action;import javax.servlet.ServletContext;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import org.apache.struts2.util.ServletContextAware;import cn.lhzd.tool.ClassTool;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;/** * Action工具类 * 1:使用action继续此类,只需要传递模型对象,即可。 * 2:拥有request,response,context * 3:子类调用getModel();可获取到 表单封装数据后模型对象。 * * @param <T> 模型对象 */@SuppressWarnings({ "unchecked", "serial","rawtypes","unused"})public class BaseAction<T> extends ActionSupport implements ModelDriven<T>,ServletRequestAware,ServletResponseAware,ServletContextAware {//用于接收继承者传递的泛型对象private T obj;//采用protected 修饰,子类可以直接调用。protected ServletRequest request;protected ServletResponse response;protected ServletContext context;//通过子类先实例化父构造方法,创建泛型对象,做为模型驱动对象。public BaseAction() {Class clazz = ClassTool.GenericInstantiation(this.getClass());try {obj = (T) clazz.newInstance();} catch (Exception e) {e.printStackTrace();}}public T getModel() {return obj;}public void setServletResponse(HttpServletResponse response) {this.response = response;}public void setServletRequest(HttpServletRequest request) {this.request = request;}public void setServletContext(ServletContext context) {this.context = context;}}
0 0
- 灵活封装Struts2的action类
- Struts2里面灵活action跳转
- Struts2的Action类
- struts2的Action类
- Struts2-day01 环境搭建 源码导入 配置文件 默认action,method 详解Action 封装数据的方式
- struts2的action类名不能以"action"字符结尾
- Struts2的Action类的单元测试
- struts2之3--Action类的包装
- 一个公用的struts2基础action类
- Struts2中Action类的方法调用
- Struts2的Action
- struts2的action基础
- Struts2的Action(上)
- Struts2的Action(下)
- Struts2的Action
- STRUTS2的Action配置
- Struts2 的 Action
- Struts2 Action的单元测试
- 马上毕业,步入社会了
- 多线程应用_打字游戏
- php分页函数代码(转)
- rtsp播放器(毕业设计跟进)
- 刚想到一个统计文件行数的方法
- 灵活封装Struts2的action类
- EDAS字体嵌入
- SQL语言练习1
- NANDFLASH硬件驱动交互
- php aes加密类的实现代码
- HDU 1398 Square coins 完全背包
- cocos2dx进阶学习之屏幕适配
- 第十二篇 CAT-5电缆
- Java Servlet概述