mojjara JSF 2.0 vs myfaces表现不同

时间:2015-05-16 20:15:06

标签: jsf jsf-2 websphere myfaces

我正在进行Web应用程序升级,涉及以下两次升级

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

升级后如果我切换到WAS8.5插件中提供的myfaces libs,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类型的new UIInput();绑定了一个模型,该模型在getter model方法中返回HtmlInputText。 (我知道这是一个糟糕的代码。但它已存在,并且是用默认值初始化文本字段而写的)

我能理解为什么这不起作用。因为UIInputParent的子类。当我们尝试绑定期望Child类的{{1}}类的对象时,抛出此错误。这类似于我们尝试将父对象强制转换为子引用时

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

1 个答案:

答案 0 :(得分: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及更高版本的Application Developer。