f: validateRequiered не работает должным образом - PullRequest
3 голосов
/ 09 октября 2011

Я только что создал проект NetBeans с JSF 2.0, и у меня проблема с f: validateRequired.Бин

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class TestBean {
    private String value;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String action() {
        return "test";
    }
}

и страница

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Test</title>
        <h:outputStylesheet name="css/stylesheet.css" />
    </h:head>
    <h:body>
        <h:form>
            <div id="content">
                Value:
                <h:message for="test" />
                <h:inputText value="#{testBean.value}" id="test">
                    <f:validateRequired />
                </h:inputText>
                <br/>
                <h:commandButton action="#{testBean.action}" value="Action" />
            </div>
        </h:form>
    </h:body>
</html>

кажутся в порядке, но сообщения h: не будет, пока я не предоставлю атрибут требуемого = "true" в inputText,Чего мне не хватает?Почему проверка не происходит без обязательного атрибута "true"?

Ответы [ 2 ]

5 голосов
/ 10 октября 2011

Я понял ответ: поля с пустым вводом вообще не проверяются по умолчанию. Если вы хотите проверить такое поле, вы должны установить required=true. См. UIInput.validateValue () JavaDoc

Вы можете включить проверку пустых полей, установив для параметра контекста javax.faces.VALIDATE_EMPTY_FIELDS значение true. См. JavaDoc . После этого приведенный выше пример работает как положено.

2 голосов
/ 29 сентября 2012

Я знаю, что это сообщение довольно старое, но я использую MyFaces и, по-видимому, javax.faces.VALIDATE_EMPTY_FIELDS по умолчанию установлено в false.

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