Избегайте значения по умолчанию 0 для отображения в h: inputText - PullRequest
5 голосов
/ 20 сентября 2011

У меня есть <h:inputText>, который принимает long значение, подобное этому

<h:inputText value="#{ServiceTable.ID}" />

Свойство объявляется следующим образом

public class ServiceTable {

    private long ID;

    // Getter and setter for ID.
}

Когда я открываю страницу, я всегдасм. 0 в текстовом поле.Как я могу избежать этого?Мне просто нужно пустое текстовое поле.Я использую JSF 1.2.

Ответы [ 2 ]

8 голосов
/ 20 сентября 2011

Используйте Long вместо long. По умолчанию null.

private Long ID;

И, если вы работаете с Tomcat 6.0.16 или новее или его разветвлением, то вам нужно добавить следующий аргумент VM к аргументам запуска сервера, а также отключить приведение EL примитивов и их оболочек:

-Dorg.apache.el.parser.COERCE_TO_ZERO=false
1 голос
/ 16 декабря 2011

ужасно! многие разработчики не имеют доступа к реальному серверу, и иногда вы просто не можете перейти к клиенту и сказать ему: «остановите свой сервер и перезапустите все с этими параметрами запуска».

Почему люди в команде apache никогда не думали об этом?

Если вы находитесь в такой ситуации, как и я, другое решение - получить поле в виде строки и проанализировать его вручную в компоненте поддержки.

...