Ограничения JSF Bean Validation не имеют никакого эффекта - PullRequest
1 голос
/ 12 марта 2012

Мне не удалось запустить проверку Java Bean (JSR-303). Это не дает никакой ошибки и обрабатывает метод действия. Я помещаю один символ в «name» inputText, он принимает и выполняет метод process () (аннотация размера не применяется).

Когда я ставлю один символ, я ожидаю, что метод My.Process () не будет выполнен, я не прав? Есть ли какая-либо конфигурация, которую я пропускаю, чтобы проверка работала?

В директории WEB-INF / lib моего проекта у меня есть validation-api-1.0.0.GA.jar , hibernate-validator-4.2.0.Final.jar .
Сервер приложений: Tomcat 7.0.25 (внутри папки Lib Tomcat у меня есть myfaces-api-2.1.5.jar и myfaces-impl-2.1.5.jar ).
IDE: Eclipse Helios SR2

Я получаю сообщение «INFO: поддержка проверки бинов MyFaces отключена» из консоли, но у меня есть банки, как я указал.

Bean

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.validation.constraints.Size;

@ManagedBean(name="my")
@RequestScoped
public class MyBean implements Serializable {
  @Size(min=3, message="ERROR")
  private String name;

  public String process() {...}

  ...getters, setters, etc...
}

Форма JSF

<h:form>
    <h:messages />
    <h:inputText value="#{my.name}" />
    <h:commandButton value="Save" action="#{my.process}" />
</h:form>

Я тоже пробовал:
@NotEmpty, @ NotBlank,
@ org.hibernate.validator.constraints.Length (min = 3, message = "ERROR")
но они тоже не работают.

Ответы [ 2 ]

3 голосов
/ 13 марта 2012

Я хотел бы написать возможную проблему.

Когда у меня была эта переменная

private String Name;

Проверка не работала, потому что геттер и сеттеры такие

private String getName(){}

Итак, я переименовал Name в

private String name;

, и он начал проверять:)

Возможно, это была проблема.

1 голос
/ 27 апреля 2012

Спасибо за это! К вашему сведению, координаты Maven для бина-валидатора:

<dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>bean-validator</artifactId>
        <version>3.0-JBoss-4.0.2_03</version>
</dependency>
...