我正在尝试为我的JSF应用程序提供自定义资源包,因此我在faces-config.xml
创建并注册了javax.faces.application.ApplicationFactory
的子类,为Application
提供了一个简单的方法只是记录对Application
资源包的访问权限:
@Override
public ResourceBundle getResourceBundle(FacesContext ctx, String name) {
ResourceBundle result = super.getResourceBundle(ctx, name);
logger.log(Level.INFO, "{0} : {1}", new Object[]{name, result});
return result;
}
我突然发现以下XTML代码
<ui:repeat value="#{bean.itemList}" var="item"> <li><h:outputText value="#{item}"/></li> </ui:repeat>
正在触发getResourceBundle
方法,询问是否存在名为item
的包。
问题在于这是否是预期的行为,以及如何区分这些呼叫与那些要求ResourceBundle
而不是EL变量的呼叫。