项目一笔记

1.hibernate持久层的通用实现

public class BaseDaoImpl<T> extends HibernateDaoSupport implements IBaseDao<T> {
    
        //代表的是某个实体的类型
	private Class<T> entityClass;
	
	@Resource//根据类型注入spring工厂中的会话工厂对象sessionFactory
	public void setMySessionFactory(SessionFactory sessionFactory){
		this.setSessionFactory(sessionFactory);
	}
	
	//在父类(BaseDaoImpl)的构造方法中动态获得entityClass
	public BaseDaoImpl(){
		ParameterizedType superclass = (ParameterizedType) this.getClass().getGenericSuperclass();
		entityClass = (Class<T>) superclass.getActualTypeArguments()[0];
	}

2.表现层的通用实现

public class BaseAction<T> extends ActionSupport implements ModelDriven<T> {
	
	//模型对象
	public T model;
	
	@Override
	public T getModel() {
		return model;
	}
	
	//在构造方法中动态获取实体类型,通过反射创建model对象
	public BaseAction(){
		ParameterizedType genericSuperclass = (ParameterizedType) this.getClass().getGenericSuperclass();
		//获得BaseAction上声明的泛型数组
		Type[] type = genericSuperclass.getActualTypeArguments();
		Class<T> entityClass = (Class<T>) type[0];
		
		//通过反射创建对象
		try {
			model = entityClass.newInstance();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
	}
}

3.struts自定义拦截器

public class BOSLoginInterceptor extends MethodFilterInterceptor {
	//拦截方法
	protected String doIntercept(ActionInvocation invocation) throws Exception {
		//从session中获得用户对象
		User loginUser = BOSUtils.getLoginUser();
		if(loginUser ==null){
			//没有登陆,跳转到登陆界面
			return "login";
		}
		//放行
		return invocation.invoke();
	}
}



<!-- struts.xml文件中 -->
<package name="basicstruts2" extends="struts-default">
		<interceptors>
			<!-- 1.注册自定义拦截器 -->
			<interceptor name="bosLoginInterceptor" class="com.imwj.bos.web.interrceptor.BOSLoginInterceptor">
				<param name="excludeMethods">login</param><!-- 指定那些方法不用拦截 -->
			</interceptor>
			<!-- 2.定义拦截器栈 -->
			<interceptor-stack name="myStack">
				<interceptor-ref name="bosLoginInterceptor"></interceptor-ref>
				<interceptor-ref name="defaultStack"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<!-- 3.配置默认拦截器 -->
		<default-interceptor-ref name="myStack"/>

4.apache POI解析excel

	@Test
	public void fun1() throws Exception, IOException{
		//测试数据路径
		String filePath = "F:\\北京javaee就业班32期\\[www.javaxxz.com]项目一:物流BOS系统(58-71天)\\BOS-day05\\资料\\区域导入测试数据.xls";
		//包装一个Excel文件对象
		HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream(new File(filePath)));
		//读取文件中第一个Sheet标签页
		HSSFSheet sheetAt = hssfWorkbook.getSheetAt(0);
		//遍历标签页中所有的行
		for (Row row : sheetAt) {
			int rowNum = row.getRowNum();//得到行号,去掉标题行
			if(rowNum == 0){
				continue;
			}
			for (Cell cell : row) {
				String value = cell.getStringCellValue();//得到每一个单元格数据
				System.out.print(value);
			}
			System.out.println();
		}
	}

猜你喜欢

转载自blog.csdn.net/langao_q/article/details/83045536