【问题标题】:ICEfaces 2.0.0 + View Scope + BindingICEfaces 2.0.0 + 查看范围 + 绑定
【发布时间】:2012-03-20 02:26:55
【问题描述】:

我想将 icefaces 1.7.2 中的项目迁移到 icefaces 2.0.0。但我面临绑定问题。因为整个项目对每个 UI 组件都使用绑定,并且它在旧版本中使用请求范围。如果我想迁移它,我需要将请求范围 bean 转换为查看范围 bean。如果我这样做,绑定将不起作用,并导致不需要的输出。

所以请建议我一个解决方案,将 icefaces 1.7.2 项目迁移到 icefaces 2.0.0,而不使用绑定或任何其他方式来迁移项目。

而且窗口或会话范围也没有用,因为它为每个用户消耗更多的内存空间,而更多的用户同时访问网页。

【问题讨论】:

  • 为什么需要绑定?在 JSF 2.x 中,有几种新方法无需将组件绑定到 bean。相关:@ViewScoped fails in tag handlers.
  • 所有在老版本的icefaces中使用的组件都使用绑定属性来完成与该组件相关的所有事情......是的,无需绑定即可轻松创建icefaces2.0和jsf2.0 Web项目.但我的情况是将 icefaces1.7.2 项目迁移到 icefaces 2.0.0 项目。在jsf2.0和icefaces 2.0.0中制作整个项目是可以的。但这比迁移需要更多时间。

标签: java jsf-2 icefaces icefaces-2


【解决方案1】:

在 JSF 2.0 和 2.1 中,由于时间问题,组件绑定不能与视图范围一起使用。

在构建组件树时解析绑定,但视图范围在应用视图状态之前不会变为活动状态,这发生在构建之后。

这在 JSF 2.2 中已修复,但尚未发布。如果您喜欢冒险,可以尝试夜间构建。

【讨论】:

  • 我不明白你的意思.. 我需要等到 jsf2.2 发布吗?还有其他方法可以迁移吗??
  • 在不使用绑定属性(例如使用 id 查找组件)的情况下创建视图范围 bean 的所有其他方法是什么(findComponent(FacesContext.getCurrentInstance().getViewRoot(), "componentID");) ? ?
  • 如果您想使用视图范围和访问组件,请按 Id 查找或将组件绑定到单独的请求范围 bean。通过以编程方式解析 EL 或通过请求属性在视图范围内获取该 bean。
  • 你能给我一个通过视图范围bean访问请求bean的例子吗?我不知道。同时,我的项目包含60多页。如果我想像你说的那样装订,可以做 60 页吗?
【解决方案2】:

或者你可以使用 SessionBean...直到 jsf 2.2 发布

【讨论】:

    猜你喜欢
    • 2011-05-31
    • 1970-01-01
    • 2015-10-07
    • 2012-11-13
    • 2011-06-19
    • 2018-04-11
    • 1970-01-01
    • 2011-05-04
    • 2017-03-03
    相关资源
    最近更新 更多