public class BaseAction<T> extends ActionSupport implements ModelDriven<T> { private static final long serialVersionUID = 1L; protected T model; //页面表单映射到model相当于struts1的formbean //将所有的service写入到BaseAction中 @Resource protected RoleService roleService; @Resource protected DepartmentService departmentService; @Resource protected UserService userService; @Resource protected PrivilegeService privilegeService; // 页码默认为第1页 protected int pageNum = 1; @SuppressWarnings({ "rawtypes", "unchecked" }) public BaseAction() { try { // 得到model的类型信息 ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass(); Class clazz = (Class) type.getActualTypeArguments()[0]; // 通过反射生成model的实例 model = (T) clazz.newInstance(); } catch (Exception e) { throw new RuntimeException(e); } } public T getModel() { return model; } }
时间: 2024-10-14 01:16:56