Primefaces fileupload を使用したいのですが、これは私の jsf ページです:
<h:form id="uploadForm" enctype="multipart/form">
<p:fileUpload id="fileUpload" value="#{fileUploadController.file}" mode="simple"/>
<p:commandButton value="Submit" ajax="false"
actionListener="#{fileUploadController.upload}" />
</h:form>
これは私の豆です:
package FileUploadController;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.model.UploadedFile;
@ManagedBean
@SessionScoped
public class FileUploadController {
private UploadedFile file;
public UploadedFile getFile() {
return file;
}
public void setFile(UploadedFile file) {
this.file = file;
}
public void upload() {
if(file != null) {
FacesMessage msg = new FacesMessage("Succesful", file.getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
}
}
プリムに必要な依存関係は次のとおりです。fileupload、pom.xml (私はmavenプロジェクトを使用しています):
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>portlet-api</groupId>
<artifactId>portlet-api</artifactId>
<version>1.0</version>
</dependency>
ここに私のweb.xmlがあります:
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>
org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
ファイルを設定したいと思いUploadedFile
ます。[送信] ボタンをクリックすると、アップロード メソッドが正しく呼び出されますが、UploadedFile
ファイルはまだ null であり、選択したファイルに設定されていません。このファイルを設定するにはどうすればよいですか?