2010-05-14 13 views
7

JAX-RS REST servislerini, tarayıcılar kullanan insanlar tarafından doğrudan kullanılan bir web uygulaması için arka uç olarak kullanmak istiyorum. İnsanlar zaman zaman hata yaptıkları için, form girdisini doğrulamak ve yanlış bir şey girilmişse, doğrulama mesajı ile formu yeniden görüntülemek istiyorum. Varsayılan olarak JAX-RS, tüm veya yanlış değerler gönderilmediyse 400 veya 404 durum kodu gönderir.JAX-RS ile form girişi onayı

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

JAX-RS "400 Geçersiz Request" int ve getiri açısından "xyz" dönüştürülemedi:

Say örneğin kullanıcı "saymak" form alanına bir "xyz" girdi.

Kullanıcıya "sayım" alanına yasa dışı bir değer girdiğinden nasıl bahsedebilirim? Her yerde Dizeleri kullanıp el ile konuşma yapmaktan daha kullanışlı bir şey var mı?

cevap

-2

Kullanım @FormParam ("sayılan") Tamsayı

çalışacağını sayılır.

+2

: JAX-RS ile s3auth.com form doğrulama benzer bir şey kullanıyorum

. – deamon

3
Ben mesela AOP'yi, JSR-303 ve JAX-RS istisna haritacıları kullanmayı öneriyoruz

: Tüm ValidationException -s yakalamak ve kullanıcıları yönlendirir JAX-RS istisna eşleştiricisi tanımlamak Sonra

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

doğru yere. Ben ("saymak") `` @FormParam kullanıyorum, ama bu çözüm değil https://github.com/yegor256/s3auth/blob/master/s3auth-rest/src/main/java/com/s3auth/rest/IndexRs.java

+0

+1. Bu gerçekten güzel ve basit bir cevaptır. –