<h:inputText value="#{testBean.b}"><f:converter converterId="dc" /></h:inputText>
@SessionScoped
@ManagedBean
class TestBean{
private Double b;
//getter-setter
}
我需要在双数据类型
中将空值存储为null,将0存储为0如果字符串(在textbox中)为null或为空,我已重写NumberConverter以返回null 执行if部分中的代码并重新调整null,但调用setter(testBean.setB)时使用值0。
public class DoubleFormatter extends NumberConverter {
@Override
public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String param){
if(param ==null || param.trim().length()==0){
System.out.println("returning null");
return null;
}
return super.getAsObject(facesContext, uiComponent, param);
}
@Override
public String getAsString(FacesContext facesContext, UIComponent uiComponent,Object obj) {
if(obj ==null)
return "";
return super.getAsString(facesContext, uiComponent, obj);
}
}
javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
上下文参数对我没用,因为我只想在特定字段上应用它。
答案 0 :(得分:1)
Customer Converter(DoubleFormatter)正在使用glashfish3,但没有使用tomcat6 + mojarra(2.1.0和2.0.3