Wiosną MVC (pracuję z 3.0.2), dwie metody HTTP są zawsze (lub głównie jako wydaje mi) zarezerwowane (tj odwzorowane w odpowiednie koparki), które są GET and POST takich jakJak radzisz sobie z żądaniami Ajax w Spring MVC?
@RequestMapping(method=RequestMethod.GET)
public String showForm(Map model)
{
//Usually retrieve data from the database when the page is loaded.
return "admin_side/Temp";
}
Powyższa metoda jest wywoływana po otrzymaniu żądania GET.
@RequestMapping(method=RequestMethod.POST)
public String onSubmit(@ModelAttribute("tempBean") @Valid TempBean tempBean, BindingResult error, Map model, HttpServletRequest request, HttpServletResponse response)
{
//Perform some basic operations with the database like insert, update or delete when the form is submitted (by clicking a submit button or so).
return "admin_side/Temp";
}
Powyższa metoda jest wywoływana, gdy żądanie POST jest wykonany. Zakładając, że kontroler Spring jest oznaczony adnotacją @RequestMapping(value="admin_side/Temp")
.
Co się stanie, jeśli będę potrzebować Ajaxa i muszę wykonać inną funkcjonalność niż poprzednie metody? Nie mogę obsłużyć innej metody za pomocą metody GET ani metody POST, ponieważ są już zamapowane procedury obsługi (obie metody HTTP, GET i POST są zarezerwowane do obsługi metod odpowiednio showForm()
i onSubmit()
).
Dla demonstracji, użyłem podejście method=RequestMethod.PUT
z Ajax takich jak
@RequestMapping(method=RequestMethod.PUT)
public @ResponseBody String getStateList(@ModelAttribute("tempBean") @Valid TempBean tempBean, BindingResult error, HttpServletRequest request, HttpServletResponse response)
{
return "Message";
}
i działał zgodnie z przeznaczeniem, ale czułem powinno nie być najlepszym rozwiązaniem. Jak radzisz sobie z wnioskami Ajaxa w Spring MVC, jeśli masz taki scenariusz (właściwie wydaje mi się to dość normalne)? Czy powinienem (zawsze) używać RequestMethod.PUT
? (lub jaka jest najlepsza metoda HTTP dla Ajax na wiosnę?)
Czy istnieje sposób mapowania więcej niż jednej metody z tą samą metodą HTTP w tym samym kontrolerze (oczywistą odpowiedzią powinno być no)? Znowu, z którego podejścia korzystasz, gdy chcesz pracować z Ajaxem w Spring MVC? Mam nadzieję, że podążysz za tym co mam na myśli! Trudno mi to wyrazić, ponieważ mój angielski jest na początkowym etapie.
Dzięki! Zrób to, używając innego adresu URL. Teraz muszę pobrać dane z kontrolera Spring za pomocą Ajax (zazwyczaj "Lista >"). Nie wiem o tym teraz, ale Spring MVC 3.0.2 powinien obsługiwać niektóre mechanizmy, takie jak JSON. Wiesz o tym? Mam na myśli, czy masz jakieś linki, jeśli używałeś takich rzeczy w Spring MVC? Możesz odrzucić moją prośbę, ponieważ nie jest to oryginalne pytanie. Dziękuję Ci. – Tiny
@ Tiny Oto przykład użycia biblioteki Jacksona: http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/ – toniedzwiedz