我正在将旧的JSF 1 Web应用程序升级到JSF 2(特别是从MyFaces 1.1升级到MyFaces 2.2.12)。旧的应用程序使用JSP,我现在用Facelets替换它。我主要使用Migrating from JSF 1.2 to JSF 2.0作为指南。
在旧版Web应用程序中使用了一些组件库,Facelets中似乎不支持这些组件库,我需要找到合适的替代品。
其中一个是" EasySi"来自JSF-Comp project的标签。我们使用" selectItems"来自该库的标记,但根据PrimeFaces论坛this thread中的最后一个答案,EasySi默认只支持JSP。
根据JSF 2.2/Facelets documention of selectItems,自版本2以来,核心库中的selectItems
标记专门支持itemValue
和itemLabel
属性(以及其他属性)。这些是属性我们在旧的JSP模板中使用了EasySi版本的selectItems
。
所以,我的问题是:
JSF 2核心标记库中的selectItems
是否与JSF 1组件库EasySi中的selectItems
具有完全相同的功能?换句话说,我可以替换像
<%@ taglib uri="http://sourceforge.net/projects/jsf-comp/easysi" prefix="si" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
...
<t:selectOneMenu>
<si:selectItems value="#{someExpression}" var="item" itemLabel="#{item}" itemValue="#{item}"/>
</t:selectOneMenu>
在JSF 1 JSP模板中,类似于
<!DOCTYPE html>
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:t="http://myfaces.apache.org/tomahawk">
...
<t:selectOneMenu>
<f:selectItems value="#{someExpression}" var="item" itemLabel="#{item}" itemValue="#{item}"/>
</t:selectOneMenu>
在我的Facelet中,并期望与以前相同的行为?