ContentNegotiatingViewResolver
не поддерживает такое поведение.На данный момент, я думаю, вам лучше всего подклассировать его и переопределить метод getMediaTypeFromParameter()
, чтобы вызвать исключение, если тип носителя не поддерживается.
Вы можете выбросить любой RuntimeException
из этого метода, и еслиВы аннотируете класс исключений с помощью @ResponseStatus
, вы можете контролировать код ответа HTTP, например,
@ResponseStatus(HttpStatus.NOT_ACCEPTABLE)
public class FormatNotSupportedException extends RuntimeException {
}
. В долгосрочной перспективе я настоятельно рекомендую вам подать в http://jira.springsource.org, запрос натакая функциональность будет добавлена в ContentNegotiatingViewResolver
.Они должны иметь возможность добавить это как необязательный поведенческий параметр.Именно такие запросы означают, что Spring становится все лучше.