Вы должны сообщить JSF, что вы уже завершили ответ, позвонив по номеру FacesContext#resposneComplete()
.Вы также не должны возвращать строку с навигационным регистром (не то, чтобы это повредило, но это совершенно лишнее и сбивало с толку сопровождающего).
public void exportXls() {
// ...
FacesContext.getCurrentInstance().responseComplete();
}
Не связано с конкретной проблемойЯ настоятельно рекомендую удалить блок catch (Exception ex)
и заменить его на throws IOException
в методе.Все, что может выдать код, это IOException
.Вы не должны проглотить это исключение, но позволить контейнеру обработать его.Это также позволяет вести более централизованную регистрацию исключений с помощью Filter
.