【问题标题】:mojjara JSF 2.0 vs myfaces behaving differentlymojjara JSF 2.0 vs myfaces 表现不同
【发布时间】:2015-07-28 14:32:23
【问题描述】:

我正在进行网络应用程序升级,其中涉及以下两个升级

JSF 1.0 -> 2.x , Webspehere 7.0 -> 8.5

升级后,如果我切换到 WAS8.5 插件中提供的 myfaces 库,UI 中的某些元素往往会损坏。如果我将实现保留到 mojjara JSF2.0 库,它似乎工作正常。

我在使用 myFaces 2.0 时遇到的错误之一是

java.lang.IllegalArgumentException: Component javax.faces.component.UIInput is no javax.faces.component.html.HtmlInputText

发生这种情况是因为 <inputText> 类型为 javax.faces.component.html.HtmlInputText 标记具有与模型的绑定,该模型在 gettermodel 方法中返回 new UIInput();。 (我知道这是一个糟糕的代码。但它是存在的,并且是为了使用默认值初始化文本字段而编写的)

我可以理解为什么这不起作用。因为HtmlInputTextUIInput 的子类。当我们尝试绑定 Parent 类的对象时,预计会出现 Child 类,这个错误被抛出。这类似于我们尝试将父对象强制转换为子引用时

如果是这种情况,那么我的问题是相同的代码如何与 Mojjara JSF 实现一起工作。如果我切换到 Mojjara,我就不会遇到这个问题,这很令人惊讶。因为我也预料到了这个问题,因为代码违反了一般的父子类规则。

【问题讨论】:

    标签: jsf jsf-2 websphere myfaces


    【解决方案1】:

    查看此页面 - JavaServer Faces migration - 它描述了一些迁移细节。特别是,如果您使用 JWL:

    您必须将小部件库更新到 3.1.6 或更高版本才能启用 与 JSF 2.0 实现中的更改兼容。获得一个 通过升级 IBM® Rational® Application 的 JWL 兼容版本 WebSphere 7.5.5.2 或更高版本的开发人员或安装 IBM Rational WebSphere V8.0 及更高版本的应用程序开发人员。

    【讨论】:

    • 您好,感谢您的回答。我查了一下,使用的 JWL 是更新的。
    • 我遇到的错误之一是 --- java.lang.IllegalArgumentException: Component javax.faces.component.UIInput is no javax.faces.component.html.HtmlInputText
    • @Amit.rk3 您是否尝试通过控制台将 JSF 配置切换到 Sun RI?
    • 但是 sun RI 配置是 JSF 1.2 对吗?而我的要求是将其升级到 JSF2.0
    • 它适用于 JSF 2.0 Mojjara。我只是想避免在 webapp 中添加额外的 mojjarra 库并通过将类加载器设置为 parent_last 来强制加载它们
    猜你喜欢
    • 2011-02-27
    • 2011-07-22
    • 2010-12-02
    • 1970-01-01
    • 2012-01-16
    • 2011-11-11
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    相关资源
    最近更新 更多