Necesitamos tu ayuda para compartir nuestros escritos en referencia a las ciencias informáticas.
Solución:
Todo está en la guía de migración aquí: https://github.com/primefaces/primefaces/wiki/Migration-Guide.
en general lo siguiente funcionará:
DefaultStreamedContent.builder().contentType(contentType).name(name).stream(() -> is).build();
Pero la idea detrás del cambio es diferente.
Si usa un bean RequestScoped para construir StreamedContent, su bean y, por lo tanto, StreamedContent se crearán dos veces:
- al renderizar la vista
- al transmitir el recurso (¡esta es una nueva solicitud del navegador!)
En este caso, su is
probablemente se creará 2 veces. La mayoría de las veces, esto da como resultado 1 acceso de E/S inútil o llamada a la base de datos.
Para crear solamente el is
una vez, debe inicializarlo de forma perezosa a través del proveedor lambda:
DefaultStreamedContent.builder().contentType(contentType).name(name).stream(() -> new FileInputStream(....)).build();
Reseñas y valoraciones del post
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)