基于此答案https://stackoverflow.com/a/7531284/944396中提供的第三个选项/示例,我尝试将转换器作为 ViewScoped bean 中的属性;但是,当我这样做时,它会破坏该 bean 的视图范围(它不应该被构造多次)。
我不确定我是否做错了什么,或者该示例是否假设您正在运行已修复 ViewScope/绑定问题的较新版本的 Mojarra。我自己正在运行 Mojarra 2.1.6。这是bean代码:
@ManagedBean
@ViewScoped
public class Bean {
private Double myVal;
private Converter converter;
public void Bean() {
converter = new MyCustomConverterClass();
}
public Converter getConverter() {
return converter;
}
public Double getMyVal() {
return myVal;
}
public void setMyVal(Double myVal) {
this.myVal = myVal;
}
}
以及用法:
<h:outputText value="#{bean.myVal}" converter="#{bean.converter}" />