После того, как post устанавливает значение в области флеш-памяти JSF2, оно снова отображается во втором GET-запросе к странице (область флеш-памяти считается вредной)
Я тестировал новую область применения Flash в JSF2, но обнаружил в ней серьезную проблему или мне не хватает некоторых знаний.
Наличие страницы:
<h:body>
Value in flash: #{flash.text}
<h:form>
<h:inputText value="#{flash.text}" />
<h:commandButton value="Test" /> <!-- Same behavior with faces redirect -->
</h:form>
</h:body>
У меня есть сценарий:
- Укажите значение "foo" и нажмите "Тест".
- Я получаю 'Value in flash: foo'
- Я открываю новую страницу с тем же адресом
- Я получаю 'Value in flash:'
- Я открываю другую новую страницу с тем же адресом
- Я получаю 'Value in flash: foo' <- ИМХО, это неправильно!
Воспроизводимость: 100% протестировано на Glassfish 3.1 и JBoss AS 7
Другая проблема, возможно, по той же причине: удаление сообщений JSF из флэш-памяти
Так:
- Желаемое поведение вспышки JSF2?
- Исходя из этого и других замеченных проблем со вспышкой, следует ли считать использование эталонной вспышки вредным?
1 ответ
Я думаю, что на данный момент реализация Flash должна считаться действительно вредной. В приложении, над которым я работаю изо дня в день, у меня был очень хороший пример использования, но, к сожалению, Flash просто оказался непригодным для использования.
Основная проблема заключается в том, что cookie, который используется для передачи указателя на состояние, не очищается, см. Сообщение в области Flash, которое живет дольше, чем следующий запрос.
Также кажется, что есть проблема безопасности с областью флеш-памяти, см. Файл cookie флеш-области позволяет использовать данные.
Если что-то из этого вас беспокоит, пожалуйста, проголосуйте за связанные вопросы;)