|
|
|
[JSF] Ошибка "getOutputStream() has been called for the response" после redirect'a
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, помогите пожалуйста. В бине я устанавливаю атрибут сессии для последующего получения данного атрибута в сервлете. После этого я делаю redirect на этот сервлет, к сожалению вместо получения ожидаемого отчета, который должен формироваться в сервлете, в логе сервера я вижу ошибку: Код: java 1. 2. 3. 4. 5. 6. 7. А вот и тот код, который вызывает ошибку Backed bean: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Сервлет: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Я просмотрел кучу форумов, где есть упоминание про эту ошибку, но не смог найти ответа применительно к моей ситуации, я так понимаю, что на объекте HttpServletResponse, который получает сервлет уже вызывался метод getOutputStream() - я сам передаю уже "юзанный" респонс в методе форвард request.getRequestDispatcher("AmexReportView.jsf").forward(request, response ); А вот как мне сделать редирект не передавая response я не понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 17:20:54 |
|
||
|
[JSF] Ошибка "getOutputStream() has been called for the response" после redirect'a
|
|||
|---|---|---|---|
|
#18+
Вы делаете форвард - а говорите про редирект, точно понимаете разницу между ними? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 17:32:54 |
|
||
|
[JSF] Ошибка "getOutputStream() has been called for the response" после redirect'a
|
|||
|---|---|---|---|
|
#18+
Хотя ладно во избежание дальнейших вопросов Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 17:36:15 |
|
||
|
[JSF] Ошибка "getOutputStream() has been called for the response" после redirect'a
|
|||
|---|---|---|---|
|
#18+
забыл никВы делаете форвард - а говорите про редирект, точно понимаете разницу между ними? Вы правы, уважаемый забыл ник, не очень то понимал. Я поменял код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. К сожалению, когда я заменил строку, моя страница перестала перегружаться, т.е. я вижу в дебагере что код сервлета выполняется, но jsf-страница на которой расположена кнопка "Просмотр отчета" остается на месте, а по задумке браузер должен переходить на сервлет. Вот как я дергаю указанную функцию из jsf страницы: Код: html 1. 2. Подскажите пожалуйста, где я ошибся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2012, 11:53:33 |
|
||
|
[JSF] Ошибка "getOutputStream() has been called for the response" после redirect'a
|
|||
|---|---|---|---|
|
#18+
А зачем вам тут вообще программный редирект? Почитайте про навигацию в jsf - тут типичный случай из метода action вернете строку, по которой jsf сам отрендерит нужный вью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2012, 12:08:49 |
|
||
|
[JSF] Ошибка "getOutputStream() has been called for the response" после redirect'a
|
|||
|---|---|---|---|
|
#18+
Разобрался! Забыл вставить строчку ajax="false" в параметрах commandButton'а. забыл никА зачем вам тут вообще программный редирект? Почитайте про навигацию в jsf - тут типичный случай из метода action вернете строку, по которой jsf сам отрендерит нужный вью Вот именно так я и делал с самого начала, до того как написал сообщение на форуме. Такая схема у меня не заработала, т.к. оказывается, что нельзя просто так сделать редирект с jsf страницы на сервлет, указав одно лишь имя страницы. Необходимо использовать ту конструкцию, что Вы мне и подсказали Код: java 1. 2. 3. 4. 5. забыл ник , спасибо Вам огромное! Я два дня с этой глупостью проковырялся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2012, 15:11:45 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2130795]: |
0ms |
get settings: |
16ms |
get forum list: |
23ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
51ms |
get topic data: |
17ms |
get forum data: |
5ms |
get page messages: |
76ms |
get tp. blocked users: |
3ms |
| others: | 283ms |
| total: | 486ms |

| 0 / 0 |
