Prosta aplikacja Spring MVC 4 + REST

0

Zaczałem zabawe Spring MVC 4 + JSON+REST, wykorzystuje do tego :
https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo

jest wiele tutoriali ktore pokazuja aplikacje do @Controllera niestety nie moge znaleźć nic co pokazuje jak połączyć to z widokiem.
W RestClient wywołuje URLe z palca.Czy mozecie podesłać namiar na jakiegos tutka ktory pokazuje w jaki sposob uzytkownik bedzie zmieniał te urle ? i jak odwolywac sie do tego na stronie jsp ?

3

jeśli dobrze cię rozumiem, musisz wykonywać zapytania AJAXowe żeby obsłużyc asynchronicznie RESTa na jakiejś stronie JSP

jeśli domyślnie twoje @Controllery zwracają strony JSP to kontrolery RESTowe musisz adnotować @RestController lub @Controller + obok każdego @RequestMapping dodać @ResponseBody

najprościej to chyba będzie ci zacząć z jQuery
hasła: REST jQuery ajax

0

Tak bardzo dobrze zrozumiałeś właśnie o to mi chodziło.

0

Mam pewien problem ponieważ nie wiem w jaki sposob umiescic w funkcji ajax zapytanie.
W controlerze i w rest cliencie wyglada to tak:

 
@RequestMapping(value = "motherboard", method = RequestMethod.POST)
	private ModelAndView create_component(@RequestBody String name_component,ModelAndView model) {

			MotherboardInterface create_motherboard = MotherboardSimpleFactory
					.create_motherboard(name_component);
			your_pc.setMotherboard(create_motherboard);
		

		model.setViewName("config");
		model.addObject("your_pc_all", your_pc.toString());
		
		
		return model;
	}

rest.PNG

I to wszystko działa bardzo fajnie no i teraz w jaki spsob napisac funkce ajax a szczegolnie data: zeby czytało taki @RequestBody ?

 
$(".add_component").click(function(){
		
		$.ajax({
			type : "POST",
			url : "motherboard",
			data : "Asus RAMPAGE IV Black Edition",
			success : function(){
				alert("DODANO");
				
			},
			error : function(){
				alert("BLAD");
				
			}
			
		})
		
		
	});
0

Ale widzę że Ty jednak nie do końca zrozumiałeś co napisał @azalut. Przeczytaj jeszcze raz i zastosuj, bo to co obecnie masz po stronie Javy, to zwykłe MVC, a ty potrzebujesz usługi REST.

0

@krzysiek050 rozwiń temat przynamniej żebym wiedział co nie tak robie reszte doczytam... chodzi o to że restowe controlery nie powinny zwracac modelAndView ?

0
davyd napisał(a):

@krzysiek050 rozwiń temat przynamniej żebym wiedział co nie tak robie reszte doczytam... chodzi o to że restowe controlery nie powinny zwracac modelAndView ?

Dokładnie. Mają zwracać obiekt który reprezentuje JSONa. Resztę znajdziesz w poście @azalut 'a

0

Nowy w tym jestem wiec prosze o wyrozumialość ... ok czyli zwracam obiekt JSON np jakas Liste metodą GET ale jak wyswietle to na stronie jsp. Kiedy zwracalem ModelAndView moglem przypisac do modelu strone.jsp i np wlasnie ta liste a potem na stronie odwolac sie do modelu

<c:forEach var="component" items="${list}"> 

A w tym przypadku po wpisaniu w URL /motherboard dostaje obiekt JSON i nic poza tym. W metodzie ajax jest data gdzie i tam zdaje sie kazda wartosc z JSON moge przypisac do wartości na stronie jsp czy tak to sie robi ?

0

Doczytaj o wzorcu MVC, oraz o tym czym są webservice'y.
To o czym mówisz to właśnie mvc, czyli pobierasz w kontrolerze model, podajesz widok, wszystko razem jest łączone i wywołane.
Usługi rest, są po to, aby dociągnąć dodatkowe informacje bez przeładowania strony, czyli np. tak jak działa facebook. Nie wszystko jest ściągane od razu, bo nie wszystko jest potrzebne. Jak wejdziesz na tablicę i będziesz zjeżdżał na dół, to nowe posty będą dociągane w locie na żądanie. Jeżeli zechcesz skończyć przeglądać na poście nr 49, to facebook dostarczy Ci tylko 50, ale jak zatrzymasz się na 163 to ściągnie ich aż 170, bo tyle było ich potrzebne.

Podsumowując. Widzę że jesteś nowy, więc olej na razie usługi i pobaw się samym Spring MVC bez javascriptu. Oszczędzi Ci to nadmiaru wiedzy naraz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1