Bonjour tous le monde,
Dans une page JSF j'ai un bouton qui pemet d'ajouter de créer un nouveau client et générer un contrat sous format PDF (avec JasperReport), si les données du client sont valides alors le ficher sera généré et une autre page sur le navigateur s'affiche contant un message pour dire que l'ajout est fait avec succès. Mon porblème que le ficher PDF s'affiche mais la redirection ne se fait pas, et si je met la méthode qui génére le fichier en commantaire, la redirection se fait.
page web
<h:commandButton value="Valider" action="#{activationController.creatContract}">
bean activation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public String creatContract() {
//Ajout Client
viewContract()
return "contractSaved";
}
public String viewContract(){
//
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
byte[] bytes;
bytes = JasperExportManager.exportReportToPdf(jasperPrint);
response.setContentType("application/pdf");
response.addHeader("Content-disposition", "attachment;filename=contrat.pdf");
response.setContentLength(bytes.length);
ServletOutputStream servletOutputStream = response.getOutputStream();
servletOutputStream.write(bytes, 0, bytes.length);
servletOutputStream.flush();
servletOutputStream.close();
context.responseComplete();
return "success";
} |
faces-config.xml
1 2 3 4 5 6
|
<navigation-case>
<from-action>#{activationController.creatContract}</from-action>
<from-outcome>contractSaved</from-outcome>
<to-view-id>/pages/contractSuccessfullyRegistred.xhtml</to-view-id>
</navigation-case> |
Pouvez vous m'indiquer comment je dois faire?
Merci d'avance.
Partager