Примитив int
всегда по умолчанию равен 0
. Вы хотите использовать Integer
вместо этого. E.g.:
public class Entity {
private Integer value;
// ...
}
Что касается сохранения null
при отправке пустых данных, добавьте следующий контекстный параметр в web.xml
:
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
Кроме того, если вы используете Tomcat или клон, использующий синтаксический анализатор Apache EL, добавьте также следующий аргумент запуска виртуальной машины сервера, чтобы предотвратить обработку Number
значений как примитивов:
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
В Eclipse вы можете установить его в конфигурации сервера (дважды щелкните запись сервера в представлении Серверы ) на вкладке Аргументы в диалоговом окне Открыть конфигурацию запуска, В производстве вы можете добавить его в переменную окружения JAVA_OPTS
.