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();
}
}