Пустые отправленные значения по умолчанию равны пустым строкам, а не null
. Вместо этого вам нужно проверить, является ли строка пустой: String#isEmpty()
:
if (nameField.isEmpty()) {
// Name field is empty.
} else {
// Name field is not empty.
}
Возможно, вы также хотите закрыть пробелы. В этом случае добавьте trim()
:
if (nameField.trim().isEmpty()) {
// Name field is empty or contained spaces only.
} else {
// Name field is not empty and did not contain spaces only.
}
Обратите внимание, что String#isEmpty()
введен в Java 1.6. Если по какой-то причине вы все еще пользуетесь Java 1.5 или старше, вам нужно вместо этого установить String#length()
.
if (nameField.length() == 0) {
// Name field is empty.
} else {
// Name field is not empty.
}
Однако это не обычный способ проверки требуемого поля. Вместо этого вы должны поместить атрибут required="true"
в поле ввода.
<h:inputText id="name" value="#{bean.name}" required="true" />
<h:message for="name" />
Таким образом, JSF сам проверит его, отобразит соответствующее сообщение и пропустит вызов метода действия.
Смотри также: