如何在JSF视图中使用非ManagedBean类型的类?
非ManagedBean工具类通过faces-config.xml暴露给JSF的配置方法
直接在项目WEB-INF/faces-config.xml的根节点<faces-config>内添加如下配置即可,无需修改工具类本身的代码:
<managed-bean> <!-- EL表达式调用时的bean名称 --> <managed-bean-name>customUtils</managed-bean-name> <!-- 替换为你的工具类全限定名 --> <managed-bean-class>com.yourpackage.YourToolClass</managed-bean-class> <!-- 工具类推荐使用application作用域,全局单例 --> <managed-bean-scope>application</managed-bean-scope> </managed-bean>
参数说明
managed-bean-name:自定义的bean名称,配置完成后可直接在JSF页面通过#{customUtils.公共方法名(参数)}的格式调用工具类的方法managed-bean-class:填写工具类的完整包路径+类名,需确保工具类存在公共无参构造方法,供JSF初始化实例时调用managed-bean-scope:根据使用场景选择作用域,无特殊需求的工具类优先选择application作用域,整个应用生命周期仅创建一次实例,性能开销最低
注意事项
如果你的工具类所有方法都是静态方法,该配置依然生效,可直接通过实例调用静态方法,不需要额外调整逻辑。
该配置兼容JSF 2.0及以上所有版本,不需要引入额外依赖。
内容的提问来源于stack exchange,提问作者Marco Sulla
相关产品推荐
相关产品推荐

