JSF inputText NumberConverter хранит пустую строку как ноль - PullRequest
0 голосов
/ 20 апреля 2011
<h:inputText value="#{testBean.b}"><f:converter converterId="dc" /></h:inputText>

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

У меня есть требование хранить пустые значения как ноль и 0 как 0 в двойном типе данных

Я переопределил NumberConverter, чтобы он возвращал ноль, если строка (в текстовом поле) пуста или пуста Код в части if выполняется и возвращает ноль, но метод set (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 Ответ

1 голос
/ 22 апреля 2011

Customer Converter (DoubleFormatter) работает в glashfish3, но не с tomcat6 + mojarra (2.1.0 и 2.0.3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...