struts2的BaseAction<T>继承ActionSupport实现ModelDriven<T>
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; } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步