После того, как 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 флеш-области позволяет использовать данные.

Если что-то из этого вас беспокоит, пожалуйста, проголосуйте за связанные вопросы;)

Другие вопросы по тегам