2015-05-13 3 views
1

У меня есть веб-сервис весеннего отдыха. Класс контроллера сопоставляет параметры в HTTP-запросе объекту запроса custoom. Мой объект запроса выглядит следующим образом:Spring Rest Проверка веб-сервиса на входе

public class DMSRequest_global { 
    protected String userName = ""; 
    protected String includeInactiveUsers = ""; 
    protected String documentType = ""; And the getter and setter of the fields above 
} 

Spring использует отражение для установки значений от Incomming запроса на этот object.My вопрос можно ли нам с помощью аннотаций или некоторую вещь, чтобы проверить поле, как DocumentType в пример выше, чтобы принимать только значение из списка допустимых значений, таких как «.doc», «.txt», «. pdf»}. Если какое-либо другое значение отправлено в запросе, то пружина будет вызывать недопустимое исключение запроса.

+0

Смотрите здесь: http://stackoverflow.com/questions/12146298/spring-mvc-how-to-perform-validation – Raniz

ответ

1

Вы можете написать свой собственный валидатор.

@Target({ METHOD, FIELD, ANNOTATION_TYPE }) 
@Retention(RUNTIME) 
@Contraint(validatedBy = DocumentTypeValidator.class) 
@Documented 
public @interface ValidDocumentType { 

    String message() default "{com.mycompany.constraints.invaliddocument}"; 

    Class<?>[] groups() default {}; 

    Class<? extends Payload>[] payload() default {}; 

    String[] value(); 
} 

И пользовательский валидатор для этого.

Наконец, вы можете аннотировать свой компонент с помощью специальной аннотации.

@ValidDocumentType({"*.doc", "*.txt","*.pdf"}) 
protected String documentType = ""; 

Вы можете прочитать об этом в этом post

+0

Спасибо большое. .. Это решило мою проблему –

Смежные вопросы