You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Mojarra依赖替代MyFaces的RendererUtils获取组件值?

替代方案

当从MyFaces切换到Mojarra(JSF 2.3)时,原MyFaces的RendererUtils.getStringValue可以通过以下两种方式替代:

方式一:使用Mojarra原生工具类

Mojarra提供了对应的工具类com.sun.faces.renderkit.RenderKitUtils,其getStringValue方法功能与MyFaces的实现一致:

RenderKitUtils.getStringValue(FacesContext.getCurrentInstance(), component);

注意需要确保项目中引入了Mojarra的实现依赖(即你提供的com.sun.faces:jsf-impl),该类属于Mojarra的内部实现类。

方式二:使用标准JSF API(推荐)

如果希望代码不依赖特定厂商实现,可使用标准JSF API的Renderer类来获取转换后的值:

FacesContext context = FacesContext.getCurrentInstance();
Renderer renderer = context.getRenderKit().getRenderer(component.getFamily(), component.getRendererType());
String value = (String) renderer.getConvertedValue(context, component, component.getSubmittedValue());

这种方式完全基于javax.faces-api标准接口,具备更好的跨厂商兼容性。


内容的提问来源于stack exchange,提问作者Pascal Petruch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:10:17