2010-05-14 2 views
7

Я хочу использовать службы REST JAX-RS в качестве фонового для веб-приложения, используемого непосредственно людьми с браузерами. Поскольку люди время от времени делают ошибки, я хочу проверить ввод формы и повторно отобразить форму с сообщением о проверке, если что-то не так. По умолчанию JAX-RS отправляет код статуса 400 или 404, если не были отправлены все или неправильные значения.Проверка ввода формы с помощью JAX-RS

Скажет, например, пользователь ввел «А» в поле формы «кол»:

@POST 
public void create(@FormParam("count") int count) { 
    ... 
} 

JAX-RS не может преобразовать «А» в int и возвращается «400 Bad Request».

Как я могу сообщить пользователю, что он ввел недопустимое значение в поле «count»? Есть ли что-то более удобное, чем использование Strings во всем мире и выполнение разговора вручную?

ответ

-2

Использование @FormParam ("Количество") Integer подсчет

, который будет работать.

+2

Я использую '@FormParam ("рассчитывать")', но это не ответ. – deamon

3

Я бы рекомендовал использовать АОП, JSR-303 и картограф исключения JAX-RS, например:

import javax.validation.constraints.Pattern; 
@POST 
public void create(@FormParam("count") @Pattern("\\d+") String arg) { 
    int count = Integer.parseInt(arg); 
} 

Затем определяет картограф исключения JAX-RS, который будет ловить все ValidationException -s и перенаправлять пользователь в нужное место.

Я использую нечто подобное в s3auth.com форме проверки с JAX-RS: https://github.com/yegor256/s3auth/blob/master/s3auth-rest/src/main/java/com/s3auth/rest/IndexRs.java

+0

+1. Это очень хороший и простой ответ. –

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