OA项目之BaseAction

1.忘记了好像前几篇没写BaseAction,这个Action的改进是为了节省开发的代码,将Action中公共的代码提取出来,系统各自的Action只需要继承BaseAction即可代码如下:

package com.icss.oa.base;

import java.lang.reflect.ParameterizedType;
import javax.annotation.Resource;
import com.icss.oa.domain.Department;
import com.icss.oa.domain.User;
import com.icss.oa.service.DepartmentService;
import com.icss.oa.service.RoleService;
import com.icss.oa.service.UserService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class BaseAction<T> extends ActionSupport implements ModelDriven<T>  {
    
    @Resource
	protected RoleService roleService;
	@Resource
	protected  DepartmentService  departmentService ;
	@Resource
	protected  UserService userService ;
	
	protected T  model ;
	
	public  BaseAction() {
		ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
		Class clazz = (Class) pt.getActualTypeArguments()[0];
		
		try {
			model = (T) clazz.newInstance();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public T getModel() {
		// TODO Auto-generated method stub
		return model;
	}
	
	
	
	  
	
}

里面需要注意的有:泛型的使用?如何获取带参数类型的类?如何获得泛型的实例?以及如何返回model?注意注解不能忘记,这里使用了构造方法,因为构造方法是肯定需要执行的,且执行一次

需要将各个持久层实体的servcie层注入进来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值