【发布时间】:2011-06-18 19:16:13
【问题描述】:
我有一个在 Mojarra 2.1.1 / Glassfish 3.1 上运行的应用程序,现在已经增长到 150,000+ 代码行。该应用程序将 ajax 与 ViewScoped 托管 bean 和 page-redirect-get 模式(即 faces-redirect=true)。
一直让我烦恼的一件事是明显缺乏通过的便利性 页面到页面和 bean 到 bean 的参数(每个页面都有自己的支持 bean)。
我无法让闪光灯正常工作。我通常需要访问我拥有的数据 在下一页的 preRenderView 事件监听器中写入 flash。这不 可靠地工作,尤其是在应用程序重新部署之后。
我已阅读 CDI 并花了几天时间尝试从 JSF 托管 bean 迁移 到 CDI bean,但不能让它工作。好像有很多兼容性问题 在 Seam 3 和 Glassfish 3.1 之间。我将 Weld 升级到 1.1.1,但这并没有帮助。从 我的观点是它目前不起作用。例如,当我说不起作用时 我有一个页面试图将 h:inputText 转换为支持 bean 中的字符串,但这没有 工作,非常简单的东西。
由于我遇到的 CDI 问题,我无法使用 @RenderScoped 中的接缝面 一个非常简单的测试应用程序(即使在 g/f 3.1 上)只是我想要的,但不是在 复杂的主应用程序。
目前我能找到的唯一可靠的机制是 URL 参数,它是 安全噩梦。尽管已尽一切努力确保对数据的访问是 经过适当的身份验证,总会有丢失某些东西的变化,并且看到 ...xhtml?id=51031 或浏览器中的任何内容对于某些人来说太过分了 尝试其他ID。我写了一个混淆转换器来避免明文,不要 为名称/值对使用有意义的名称,但这不会到达 问题。
我只是想知道我是否在这里遗漏了一些东西,其他人有没有可行的解决方案 对这个问题,即使在 glassfish 上?我是不是太担心了,应该坚持使用 URL 参数?还有其他建议吗?
谢谢。
【问题讨论】:
-
I've not been able to get the flash working.- 你能详细说明一下吗? -
Mojarra 在下一个请求的 preRenderView 侦听器中可靠地访问写入闪存的值时存在问题。大约一年前我登录了一个 JIRA,他们计划在 Mojarra 2.2 中修复它。重新部署应用程序或重新启动服务器后会出现此问题。似乎有很多用例表明 Flash 不能可靠地工作。