primefacesのアップロード後にjsfページをリロードするにはどうすればよいですか?primefacesのアップロード後にjsfページをリロードする方法は?
私はjavascriptのoncomplete="javascript:window.location.reload()"
と試みるが、それは動作しませんです。
XHTML:
<h:form>
<p:messages showDetail="true"/>
<p:fileUpload fileUploadListener="#{revistauploadBean.upload}"
mode="advanced" dragDropSupport="false" merge="true"
uploadLabel="Enviar" cancelLabel="Cancelar"
oncomplete="javascript:window.location.reload()"
label="Procurar PDF" sizeLimit="1000000000" fileLimit="3"
allowTypes="/(\.|\/)(pdf)$/" />
</h:form>
豆:
public void upload(FileUploadEvent event) throws SQLException {
LoginAuthentication user = new LoginAuthentication();
FacesMessage msg = new FacesMessage("Success! ", event.getFile().getFileName()
+ " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
// Do what you want with the file
try {
copyFile(event.getFile().getFileName(), event.getFile().getInputstream());
ConectaBanco mysql = new ConectaBanco();
mysql.insere("INSERT INTO edicoes VALUES (NULL, '"
+ mysql.pegaIDrev(user.getNome())
+ "', NULL, NULL, NULL, NULL, '"
+ event.getFile().getFileName()
+ "');");
File pasta = new File(caminhoPastaPDF
+ "/convertidos/"
+ event.getFile().getFileName());
pasta.mkdir();
convertePdf(event.getFile().getFileName());
FacesMessage msg1 = new FacesMessage("Succesful", event.getFile().getFileName()
+ " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg1);
} catch (IOException e) {
e.printStackTrace();
}
}
public void copyFile(String fileName, InputStream in) {
try {
// write the inputStream to a FileOutputStream
OutputStream out = new FileOutputStream(new File(destination + fileName));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = in.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
in.close();
out.flush();
out.close();
////System.out.println("New file created!");
}
}
ことを行う別の方法があります。 ?私は<a4j:repeat>
uumm、「javascript:」を付けずに試してみてください。リロードを実行できるはずです。しかし、間違ったURLでページを再読み込みするという問題が発生する可能性があります。 ?faces-redirect = trueでナビゲートしないと、URLは常に1ページ遅れる – noone