Bir Spring 3.1.2 uygulaması çalıştırıyorum. Bir dizi yöntemle RESTful bir servletim var. GET yöntemleri fantastik çalışıyor (@PathVariables
eşleştirme, Yanıtları doğru kabul JSON veya XML Accept üstbilgisine göre, vb)% 100 zaman. Yay @RequestParam "required = false" olmadıkça bir POST parametresi kabul edilmiyor
Ancak, POST yöntemi çalışmaz. Çevirileri ve diğer her Bahar yönüyle uğraştığım saatlerden sonra (bütün tinkering geri döndü), alanını @RequestParam
alanına daraltdım. = False gerekli
@RequestMapping (value = "/bogus",
method = POST)
public @ResponseBody PassResponse bogus (
@RequestParam (value = "test", required = false) String test) {
// Just some handy garbage objects that marshal to JSON/XML
UserResponse user = new UserResponse();
user.setName (test);
AccountDetail detail = new AccountDetail (user,null);
return new PassResponse (detail);
}
: Bu benim araştırmak için kullanıyorum basitleştirilmiş bir test yöntemidir her şey çalışıyor (parametre alınan ve yorumlanır). Devam etsin diye beklemek Tam olarak
gerekli = true:
: "Gerekli dize parametresi 'test' bulunmadığı MissingServletRequestParameterException" Ben sürekli mesaj almak (bu, varsayılan olduğundan ya, belirtilmemiş)Müşteri yandan görünüşüdür:
= gerçek
Request URL:http://localhost:8080/internal-project/rest/bogus
Request Method:POST
Status Code:400 Bad Request
Request Headersview source
Accept:application/json
Connection:keep-alive
Content-Length:12
Host:localhost:8080
Request Payload
test=LALALAA
Response Headersview source
Connection:close
Content-Length:971
Content-Type:text/html;charset=utf-8
Date:Wed, 24 Oct 2012 18:41:05 GMT
Server:Apache-Coyote/1.1
gerekligerekli = required
geçmek ve parametre geçirilen görebilir zaman aynı test paketi olarak çalıştırmak Request URL:http://localhost:8080/internal-project/rest/bogus
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:application/json
Connection:keep-alive
Content-Length:12
Host:localhost:8080
Request Payload
test=LALALAA
Response Headersview source
Content-Type:application/json;charset=UTF-8
Date:Wed, 24 Oct 2012 18:44:03 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked
yanlış. Parametre isteğe bağlı olduğunda, Yay doğru şekilde işleyebilir.
Eğer daha önce bununla karşılaştıysanız veya herhangi bir fikri varsa, bunları duymayı çok isterim. Gerekli parametreyi isteğe bağlı olarak işaretlemek, çalışsa bile, yorumluyor olsam bile, korkunç kendi kendini belgelemektir. Ayrıca davranış beni biraz tedirgin ediyor. Umarım bir yere bir şeyleri mahvettim ...
Doğru değil! İçerik Türü'nü önerdiğiniz gibi ayarlama aslında haritalama davranışını normalleştirdi. Bunu yapmak için başarısız olmam gerektiğinde, 'gerekli' alanının neden farklı davranışı tetiklediğini bilmiyorum, ama bu daha küçük bir mesele. Zaman ayırdığın için teşekkürler! – node42