`

抽象BaseAction对进行ModelDriven实现

阅读更多

利用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

    BaseAction.java

    BaseAction的小测试代码

    `BaseAction`作为Action的基类,是为了减少重复代码,实现代码复用,提高开发效率。 `DispatchAction`是Struts1中的一个扩展,它允许将一个Action类拆分为多个方法,每个方法处理一种特定的请求。这种方式使得...

    utils类及baseAction

    `BaseAction` 类的设计可以极大地提高开发效率,因为它将重复的业务逻辑和框架操作进行了抽象,让开发者能更专注于业务功能的实现。 总的来说,`Utils` 类是提供通用功能的静态方法集合,而 `BaseAction` 是控制器...

    抽取的BaseAction通用工具类

    很好用的工具类,希望帮助到大家

    BaseAction.rar_Java编程_Java_

    在Java编程领域,"BaseAction"常常被用作一个基类或者抽象类,为其他类提供通用的功能和行为。在给定的`BaseAction.rar`压缩包中,包含了一个名为`BaseAction.java`的源代码文件,这通常意味着这个文件定义了一个名...

    基于JAVA SMART系统-系统框架设计与开发(源代码+论文).zip

    因此,在对本系统进行架构设计的时候,考虑建立一个抽象的BaseAction类,该类继承LookupDispatchAction,实现LookupDispatchAction类中的getKeyMethodMap方法,在方法中返回本系统中请求参数值与资源文件中参数值的...

    使用模型驱动方便从表单获取用户输入的值

    public class SupplierSort_Action extends BaseAction implements ModelDriven&lt;SupplierSort&gt;{ private SupplierSort supplierSort = new SupplierSort(); @Override public SupplierSort getModel() { return...

    AOP下的权限控制实现

    1. 使用Filter:通过过滤器对所有请求的URI进行解析,获取用户的权限信息,并基于角色基础访问控制(RBAC)原则,比较用户权限和所需操作的权限,做出是否允许访问的决定。这种方式简单易行,但可能受到URL驱动操作...

    java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list错误解决办法

    这是Java动态代理机制生成的类,当我们在代码中使用了接口的代理对象时,JVM会创建这个代理类来实现对原始接口方法的拦截和增强。例如,Spring AOP(面向切面编程)在处理事务时,会为被代理的对象生成这样的代理类...

    Java实现真分页.自己领悟.

    `AreaAction.java`可能是具体的业务操作类,它继承了`BaseAction.java`,实现了特定领域的分页操作。 `AccNodes.java`可能是表示数据节点的类,包含了分页数据的实体对象。这些节点可能被用于构建分页列表,每个...

    原创技术:史上最灵活,强大的分页框架

    此外,如果`BaseAction.java`实现了接口或继承了抽象类,那么开发者可以通过重写某些方法来定制特定的分页行为。 总的来说,一个灵活且强大的分页框架不仅要有高效的分页处理机制,还要有良好的可扩展性和易用性,...

    crm人员关系管理系统spring+struts2+Hibernate

    技术上的提升:在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用,同时按照OO设计原则,针对接口编程,而不是针对实现编程。使用拦截器的方法对系统权限进行初步控制(后续可以采用...

    java中如何实现同一账号不能同时登录

    在这个方法中,我们首先在baseAction中或者直接在action中写一个方法,并将其静态map保存唯session。下面是Java代码: ```java private static Map, HttpSession&gt; httpssessionmap = new Hashtable, HttpSession&gt;()...

    ajax实现自动补全

    在IT领域,特别是Web开发中,使用Ajax(Asynchronous JavaScript and XML)实现自动补全功能是一种常见的技术。本文将深入探讨如何通过Ajax结合JavaScript和Java来实现这一功能,包括前端的事件监听、数据请求与处理...

    一套适合初学者的JAVA-WEB开发的小项目

    在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用性,同时遵循OO设计原则,接口是针对编程的,而不是针对实现编程的。 使用拦截器的方法对系统权限进行初步控制(后续可以采用Shiro...

    初学JAVA-WEB开发的小项目

    在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用,同时按照OO设计原则,针对接口编程,而不是针对实现编程。 使用拦截器的方法对系统权限进行初步控制(后续可以采用Shiro框架进行...

    Struts的权限实现

    - 所有的Action继承自BaseAction类,在BaseAction类中实现权限检查逻辑,并在每个Action中调用此逻辑。 - 将权限检查逻辑集成到Struts框架中,例如通过扩展`org.apache.struts.action.ActionServlet`类来实现。 ...

Global site tag (gtag.js) - Google Analytics