Я использую JSF 2.1 с файлами JSP.Я пытался использовать JSF 2.1 с файлами Facelet, но Tomahawk (расширение MyFaces) не работал.
Я пытаюсь загрузить файл с помощью Tomahawk.Моя форма выглядит следующим образом:
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>FILE UPLOAD</title>
</head>
<body>
<fieldset>
<h:form enctype="multipart/form-data">
<t:inputFileUpload value="#{fileUploadBean.upFile}"
size="25"
required="true" /><br/>
<h:commandButton value="Validar" action="#{fileUploadBean.upload}" />
</h:form>
</fieldset>
</body>
</html>
</f:view>
и мой бин (поскольку я использую JSF 2.1, мне не нужно использовать faces-config.xml
и я использую аннотации):
import java.io.IOException;
import java.io.InputStream;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import org.apache.myfaces.custom.fileupload.UploadedFile;
/**
*
* @author federico.martinez
*/
@ManagedBean
@RequestScoped
public class FileUploadBean {
private UploadedFile upFile;
public UploadedFile getUpFile(){
return upFile;
}
public void setUpFile(UploadedFile upFile){
this.upFile = upFile;
}
public String upload(){
InputStream is = null;
try {
is = upFile.getInputStream();
long size = upFile.getSize();
byte[] buffer = new byte[(int)size];
is.read(buffer,0,(int)size);
is.close();
System.out.println("File Upload Successful.");
return "processing-file";
} catch (IOException ex) {
Logger.getLogger(FileUploadBean.class.getName()).log(Level.SEVERE, null, ex);
return "error-lf";
} finally {
try {
is.close();
} catch (IOException ex) {
Logger.getLogger(FileUploadBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
Ну вот и все, но, наконец, проблема в том, что когда я нажимаю h: commandButton, он ничего не делает.Кажется, что метод «загрузить» из моего бина не работает или что-то в этом роде.что мне не хватает?