Как сделать область ввода номера изначально пустой вместо 0 или 0.00?

У меня есть место ввода, которое должно получить номер. Я хочу, чтобы он отображался как пустой. Однако, когда я запускаю свою программу, я получаю 0 или 0.00 по умолчанию. Как я могу сделать его пустым?

Это произойдет, если вы привяжете значение к примитиву вместо представления оболочки. Первоначальный int всегда по умолчанию равен 0 а примитивный double всегда по умолчанию равен 0.0 . Вместо этого вы хотите использовать Integer или Double (или BigDecimal ).

Например:

 public class Bean { private Integer number; // ... } 

Тогда при обработке формы submit следует учитывать еще две вещи. Во-первых, вам нужно проинструктировать JSF интерпретировать пустые строки, представленные значения как null , иначе EL все равно будет принуждать пустую строку к 0 или 0.0 . Это можно сделать с помощью следующего параметра context в web.xml :

  javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL true  

Во-вторых, если вы используете Tomcat / JBoss или любой сервер, который использует парсер Apache EL под обложками, вам нужно указать ему, чтобы он не приводил null к 0 или 0.0 в случае типов Number с помощью следующего аргумента VM (он неинтуитивно работает с типами Number как если бы они были примитивами):

 -Dorg.apache.el.parser.COERCE_TO_ZERO=false 

Смотрите также:

  • Пустое безумие
  • h: inputText, привязанный к свойству Integer, представляет значение 0 вместо null
  • h: inputText, привязанный к свойству String, представляет пустую строку вместо null
  • javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL больше не работает, поскольку Java EE 7 / EL 3.0

Я не согласен с предыдущими ответами, но я думаю, что вы, возможно, ищете

    

и внутри controllerа

 private double number; // getters and setters private UIInput inputBox; // getters and setters public void preRenderInput() { // if it is the first request if(!FacesContext.getCurrentInstance().isPostback()) { inputBox.setValue(""); } } 

JSF 2.0+

Вы можете использовать inputNumber в primefaces-extension вместо inputText. Как это

  

В вашем коде XHTML предположим, что у вас есть поле ввода как:

   

В поле «Управляемый компонент бонуса» нарисуйте это поле как:

 @ManagedBean(name="yourAction") public class YourAction { private String newName; ... // Add Getter & Setter Methods ... } 

Таким образом, вы не получите 0 или 0,00 в качестве значения по умолчанию в своих полях ввода.

  • Как получить ближайшее число из списка с LINQ?
  • Как сравнить два числа с плавающей запятой в Bash?
  • Давайте будем гением компьютера.