JSF inputText NumberConverter将空字符串存储为null

时间:2011-04-20 18:39:33

标签: jsf-2

<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上下文参数对我没用,因为我只想在特定字段上应用它。

1 个答案:

答案 0 :(得分:1)

Customer Converter(DoubleFormatter)正在使用glashfish3,但没有使用tomcat6 + mojarra(2.1.0和2.0.3