我想用 JSF 将 Excel 文件上传到 JBoss 服务器,所以我使用了 Tomahawk。
这是视图:
<%@ taglib uri="http://myfaces.apache.org/extensions" prefix="x"%>
<h:form id="MF" enctype="multipart/form-data" >
<x:inputFileUpload id="fileupload" value="#{dataentryctl.minvoice}" storage="file" required="false" />
<h:commandButton id="Submit" type="button" action="#{invoiceentryctl.PersistData}" value="save"
onclick="revalidateF12();submitForm()" onkeydown="keyDownEvents(this)" />
</h:form>
这是控制器/模型:
package panaceaFACweb.FACCtlbean;
import org.apache.myfaces.custom.fileupload.UploadedFile;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class dataentryctl {
private UploadedFile minvoice;
public UploadedFile getMinvoice() {
return minvoice;
}
public void setMinvoice(UploadedFile minvoice) {
this.minvoice = minvoice;
}
public String PersistData() {
load();
return null;
}
public void load() {
ParseXLS parseXls = new ParseXLS();
try {
InputStream input = minvoice.getInputStream();
// ...
} catch (IOException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
}
}
我有以下 JAR:
- tomahawk-1.1.9.jar
- commons-el-1.0.jar
- commons-logging-1.1.1.jar
- commons-fileupload-1.2.2-javadoc.jar
- commons-io-1.4.jar
其他与 JSF 相关的 JAR 已经存在。其他 JSP 页面工作正常。
我NullPointerException
上线了InputStream input = minvoice.getInputStream();
。