Java JSF2.0和MyFaces战斧

Java JSF2.0和MyFaces战斧,java,jsf,jsf-2,myfaces,tomahawk,Java,Jsf,Jsf 2,Myfaces,Tomahawk,我一直在研究在我们现有的web应用程序上进行JSF升级,这些应用程序使用JSF 1.2和tomahawk 1.1.9&没有facelets,使用JSF 2.0和tomahawk 1.1.9 这是我迄今为止的发现: 除了与t:dataScroller一起使用的t:dataTable之外,所有tomahawk组件都可以工作,但只有在t:dataTable上保留datamodel=“true”时才能工作 解决方法是设置preserveDataModel=“false” -此处解释了其断裂原因: 此

我一直在研究在我们现有的web应用程序上进行JSF升级,这些应用程序使用JSF 1.2和tomahawk 1.1.9&没有facelets,使用JSF 2.0和tomahawk 1.1.9

这是我迄今为止的发现:

  • 除了与t:dataScroller一起使用的t:dataTable之外,所有tomahawk组件都可以工作,但只有在t:dataTable上保留datamodel=“true”时才能工作

  • 解决方法是设置preserveDataModel=“false”

    -此处解释了其断裂原因:

  • 此处解释了将preserveDataModel=“true”更改为preserveDataModel=“false”的影响:

  • 现有的JSF1.2标记仍然可以在JSF2.0运行时下工作

有没有其他人做过类似的事情?你有什么经验


我在网络上到处搜索,但在这个主题上找不到太多内容,但目前我非常有信心将新的库放到测试环境中几周&然后放到一个实时环境中。

实际上,库供应商负责测试。您也不应该下载没有明确提到与JSF2.0兼容的库。如果我浏览一下Tomahawk站点,就不会有关于“JSF2.0”的消息,只有1.1和1.2。因此,您不应该期望它能在JSF2.0上完美地工作

到目前为止,与JSF2.0兼容的库只有、、和(目前仍处于Alpha阶段)

用来提供一个很好的概述,但现在已经过时了。作者还得赶上一些重大的变化



根据我个人的经验,使用Tomahawk的主要原因是
t:dataList
t:dataTable preserveDataModel=“true”
t:saveState
,但是在Facelets上使用JSF2.0时,它们都是多余的,可以被
ui:repeat
@ViewScope
替换。所以我看不出有任何理由坚持使用Tomahawk,或者一定是因为
t:selectOneRadio layout=“spread”

只是一点反馈,我已经将我们的web应用程序升级到使用JSF 2.0.3,而且似乎进展得很顺利,使用Tomahawk库的现有JSP页面仍然有效。接下来的策略将不再使用JSP,而是使用facelets(使用Primfaces——多么棒的comp.lib)。在整个升级过程中,我花了最长的时间才弄明白,如果一个faces配置文件仍然有一个jsf 1.2 DTD引用,那么我们的facelets将无法工作,而我的facelets将无法工作我并不是说它会给你一个错误,它只会显示一个空白页面