利用Java反射技术对ModelDriven实现抽象BaseAction,其代码如下:
public abstract class BaseAction<T> extends ActionSupport implements ModelDriven<T>{ @Resource protected RoleService roleService; @Resource protected DepartmentService departmentService; @Resource protected UserService userService; @Resource protected PrivilegeService privilegeService; protected T model; public BaseAction() { try { // 得到model的类型信息 ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass(); Class clazz = (Class) pt.getActualTypeArguments()[0]; // 通过反射生成model的实例 model = (T) clazz.newInstance(); } catch (Exception e) { throw new RuntimeException(e); } } public T getModel() { return model; } }
相关推荐
BaseAction.java
`BaseAction`作为Action的基类,是为了减少重复代码,实现代码复用,提高开发效率。 `DispatchAction`是Struts1中的一个扩展,它允许将一个Action类拆分为多个方法,每个方法处理一种特定的请求。这种方式使得...
`BaseAction` 类的设计可以极大地提高开发效率,因为它将重复的业务逻辑和框架操作进行了抽象,让开发者能更专注于业务功能的实现。 总的来说,`Utils` 类是提供通用功能的静态方法集合,而 `BaseAction` 是控制器...
很好用的工具类,希望帮助到大家
在Java编程领域,"BaseAction"常常被用作一个基类或者抽象类,为其他类提供通用的功能和行为。在给定的`BaseAction.rar`压缩包中,包含了一个名为`BaseAction.java`的源代码文件,这通常意味着这个文件定义了一个名...
因此,在对本系统进行架构设计的时候,考虑建立一个抽象的BaseAction类,该类继承LookupDispatchAction,实现LookupDispatchAction类中的getKeyMethodMap方法,在方法中返回本系统中请求参数值与资源文件中参数值的...
public class SupplierSort_Action extends BaseAction implements ModelDriven<SupplierSort>{ private SupplierSort supplierSort = new SupplierSort(); @Override public SupplierSort getModel() { return...
1. 使用Filter:通过过滤器对所有请求的URI进行解析,获取用户的权限信息,并基于角色基础访问控制(RBAC)原则,比较用户权限和所需操作的权限,做出是否允许访问的决定。这种方式简单易行,但可能受到URL驱动操作...
这是Java动态代理机制生成的类,当我们在代码中使用了接口的代理对象时,JVM会创建这个代理类来实现对原始接口方法的拦截和增强。例如,Spring AOP(面向切面编程)在处理事务时,会为被代理的对象生成这样的代理类...
`AreaAction.java`可能是具体的业务操作类,它继承了`BaseAction.java`,实现了特定领域的分页操作。 `AccNodes.java`可能是表示数据节点的类,包含了分页数据的实体对象。这些节点可能被用于构建分页列表,每个...
此外,如果`BaseAction.java`实现了接口或继承了抽象类,那么开发者可以通过重写某些方法来定制特定的分页行为。 总的来说,一个灵活且强大的分页框架不仅要有高效的分页处理机制,还要有良好的可扩展性和易用性,...
技术上的提升:在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用,同时按照OO设计原则,针对接口编程,而不是针对实现编程。使用拦截器的方法对系统权限进行初步控制(后续可以采用...
在这个方法中,我们首先在baseAction中或者直接在action中写一个方法,并将其静态map保存唯session。下面是Java代码: ```java private static Map, HttpSession> httpssessionmap = new Hashtable, HttpSession>()...
在IT领域,特别是Web开发中,使用Ajax(Asynchronous JavaScript and XML)实现自动补全功能是一种常见的技术。本文将深入探讨如何通过Ajax结合JavaScript和Java来实现这一功能,包括前端的事件监听、数据请求与处理...
在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用性,同时遵循OO设计原则,接口是针对编程的,而不是针对实现编程的。 使用拦截器的方法对系统权限进行初步控制(后续可以采用Shiro...
在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用,同时按照OO设计原则,针对接口编程,而不是针对实现编程。 使用拦截器的方法对系统权限进行初步控制(后续可以采用Shiro框架进行...
- 所有的Action继承自BaseAction类,在BaseAction类中实现权限检查逻辑,并在每个Action中调用此逻辑。 - 将权限检查逻辑集成到Struts框架中,例如通过扩展`org.apache.struts.action.ActionServlet`类来实现。 ...