java中的通用的SystemContext

4 篇文章 0 订阅
3 篇文章 0 订阅
转自孔浩老师的一个代码
package org.konghao.basic.model;

/**
 * 用来传递列表对象的ThreadLocal数据
 * 这里注意getWebClassesPath这个方法的注释!!!!
 * @author Administrator
 *
 */
public class SystemContext {
	/**
	 * 分页大小
	 */
	private static ThreadLocal<Integer> pageSize = new ThreadLocal<Integer>();
	/**
	 * 分页的起始页
	 */
	private static ThreadLocal<Integer> pageOffset = new ThreadLocal<Integer>();
	/**
	 * 列表的排序字段
	 */
	private static ThreadLocal<String> sort = new ThreadLocal<String>();
	/**
	 * 列表的排序方式
	 */
	private static ThreadLocal<String> order = new ThreadLocal<String>();
	
	public static String getWebClassesPath() {
		//获取path的另一种方式,不过均要检验web项目是否到web-inf/class下面。
		//可能直接到达target下的class,这里网上提出
		//项目---》property---》java build path---》source---》 outputfile
		//但是maven项目是否没有作用。这里不知是要在哪里设置??????
		//return getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
		return Thread.currentThread().getContextClassLoader().getResource("").getPath(); 
		  
		}
	
	private String getWebInfPath() throws IllegalAccessException{
		   String path = getWebClassesPath();
		   if (path.indexOf("WEB-INF") > 0) {
		    path = path.substring(0, path.indexOf("WEB-INF")+8);
		   } else {
		    throw new IllegalAccessException("路径获取错误");
		   }
		   return path;
		}

		private String getWebRoot() throws IllegalAccessException{
		   String path = getWebClassesPath();
		   if (path.indexOf("WEB-INF") > 0) {
		    path = path.substring(0, path.indexOf("WEB-INF/classes"));
		   } else {
		    throw new IllegalAccessException("路径获取错误");
		   }
		   return path;
		}
	
	public static Integer getPageSize() {
		return pageSize.get();
	}
	public static void setPageSize(Integer _pageSize) {
		pageSize.set(_pageSize);
	}
	public static Integer getPageOffset() {
		return pageOffset.get();
	}
	public static void setPageOffset(Integer _pageOffset) {
		pageOffset.set(_pageOffset);
	}
	public static String getSort() {
		return sort.get();
	}
	public static void setSort(String _sort) {
		SystemContext.sort.set(_sort);
	}
	public static String getOrder() {
		return order.get();
	}
	public static void setOrder(String _order) {
		SystemContext.order.set(_order);
	}
	
	public static void removePageSize() {
		pageSize.remove();
	}
	
	public static void removePageOffset() {
		pageOffset.remove();
	}
	
	public static void removeSort() {
		sort.remove();
	}
	
	public static void removeOrder() {
		order.remove();
	}
	
}

-----------
上面提到的问题经过测试,主要是要设置pom文件里的一个输出class文件的位置。
<build><outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes/</outputDirectory><plugins>设置其输出到
/WEB-INF/classes/
下就可以了。


您好!对于EasyExcel导入通用的方法,您可以按照以下步骤进行操作: 1. 首先,您需要导入EasyExcel的相关库文件。您可以使用Maven或Gradle来管理依赖,确保在项目引入了EasyExcel的库文件。 2. 在您的代码,创建一个ExcelReader对象,并指定要读取的Excel文件的路径或输入流。例如: ``` ExcelReader excelReader = EasyExcel.read("路径/文件名.xlsx").build(); ``` 3. 创建一个实现了AnalysisEventListener接口的监听器类,用于处理读取到的每一行数据。例如: ```java public class ExcelListener extends AnalysisEventListener<Object> { // 重写父类方法,处理每一行数据 @Override public void invoke(Object data, AnalysisContext context) { System.out.println("读取到数据:" + data); // 您可以在这里对读取到的数据进行进一步处理 } // 重写父类方法,读取完成后的操作 @Override public void doAfterAllAnalysed(AnalysisContext context) { System.out.println("读取完成!"); } } ``` 4. 使用ExcelReader对象注册监听器,并调用read()方法开始读取Excel文件。例如: ```java excelReader.read(new Sheet(1, 1, YourDataClass.class), new ExcelListener()); ``` 这里的`YourDataClass`是您自定义的数据类,用于存储读取到的每一行数据。 5. 最后,记得关闭ExcelReader对象,释放资源。例如: ```java excelReader.finish(); ``` 这是一个基本的EasyExcel导入通用的步骤,您可以根据具体需求进行进一步的处理和操作。希望对您有所帮助!如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值