package com.nfwork.dbfound.web.jstl; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; import org.apache.commons.fileupload.FileItem; import com.nfwork.dbfound.core.Context; import com.nfwork.dbfound.core.Transaction; import com.nfwork.dbfound.web.WebExceptionHandle; public class ExcelReader extends TagSupport { private static final long serialVersionUID = -3641375765346919531L; private String sourceName; private String rootPath; @SuppressWarnings("unchecked") @Override public int doEndTag() throws JspException { HttpServletRequest request = (HttpServletRequest) pageContext .getRequest(); HttpServletResponse response = (HttpServletResponse) pageContext .getResponse(); Context context = Context.getCurrentContext(request, response); try { Object ofile = request.getAttribute(sourceName); if (ofile != null) { FileItem item = (FileItem) ofile; List<List<Map>> datas = com.nfwork.dbfound.excel.ExcelReader .readExcel(item); context.setData(rootPath, datas); } } catch (Exception e) { Transaction transaction = context.getTransaction(); if (transaction.isOpen()) { transaction.rollback(); transaction.end(); } WebExceptionHandle.handle(e, request, response); return SKIP_PAGE; } return EVAL_BODY_INCLUDE; } public String getSourceName() { return sourceName; } public void setSourceName(String sourceName) { this.sourceName = sourceName; } public String getRootPath() { return rootPath; } public void setRootPath(String rootPath) { this.rootPath = rootPath; } }