post在JSF2 flash范围内设置一个值后,在第二个GET请求中再次显示一个页面(Flash范围被认为是有害的)

时间:2011-07-15 10:27:53

标签: jsf-2 mojarra flash-scope

我在JSF2中测试了新的Flash范围,但我发现了一个主要问题,或者我缺乏一些知识。

有一个页面:

<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'并单击测试
  • 我得到'闪光中的价值:foo'
  • 我用相同的地址打开新页面
  • 我得到'闪光中的价值:'
  • 我用同一个地址打开另一个新页面
  • 我得到'闪光中的价值: foo '&lt; - 恕我直言这是错的!

再现性:100% 在Glassfish 3.1和JBoss AS 7上测试

可能同样原因的不同问题:Removing JSF messages from the flash

所以:

  • 是否需要JSF2闪存的行为?
  • 基于这个和其他注意到的闪存问题,应该认为参考闪存实现有害吗?

1 个答案:

答案 0 :(得分:2)

我认为现在应该认为Flash的实施有害。在我日常工作的应用程序中,我有一个非常好的用例,但遗憾的是Flash似乎无法使用。

主要问题是用于传输指向状态的指针的cookie未被清除,请参阅Flash scoped message lives longer than next request

闪存范围似乎也存在安全问题,请参阅Flash scope cookie enables data exploits

如果您对此感到困扰,请为相关问题投票;)