2011-04-20 54 views
0
<h:inputText value="#{testBean.b}"><f:converter converterId="dc" /></h:inputText> 

@SessionScoped 
@ManagedBean 
class TestBean{ 
    private Double b; 
    //getter-setter 
} 

我必須存儲空值作爲空在雙數據類型JSF的inputText NumberConverter存儲空字符串作爲空

我已重寫NumberConverter到返回null如果字符串(在文本框的要求和0 0 )爲空白或空 中的代碼的一部分,如果被執行,重新調諧null,但裝定(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上下文參數是沒有用的我作爲我想要在規範上應用這個只有ic領域。

回答

1

客戶轉換器(DoubleFormatter)正在使用glashfish3,但不能使用tomcat6 + mojarra(2.1.0和2.0.3