

Ajax ve springu - nefunguje mi hello world
Ahoj, nefunguje mi hello world, mohl by mi někdo poradit?
Servlet:
import javax.servlet.http.HttpServlet;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class SomeController {
@RequestMapping(value = "/profile", method = RequestMethod.GET)
public @ResponseBody
String processAJAXRequest(
@RequestParam("firstname") String firstname,
@RequestParam("lastname") String lastname) {
String response = "HELLO: " + firstname + " " + lastname;
return response;
}
}
Html stránka:
<html>
<head>
<title>TODO supply a title</title>
<meta charset="windows-1250">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<form id="sampleForm" method="post" action="/profile">
<div>
<input type="text" name="firstname" id="firstname">
</div>
<div>
<input type="text" name="lastname" id="lastname">
</div>
<div>
<button type="submit" name="submit">Submit</button>
</div>
</form>
<script>
$(document).ready(function () {
$('#sampleForm').submit(
function (event) {
var firstname = $('#firstname').val();
var lastname = $('#lastname').val();
var data = 'firstname='
+ encodeURIComponent(firstname)
+ '&lastname='
+ encodeURIComponent(lastname);
$.ajax({
url: $("#sampleForm").attr("action"),
data: data,
type: "GET",
success: function (response) {
alert(response);
},
error: function (xhr, status, error) {
alert(xhr.responseText);
}
});
return false;
});
});
</script>
</body>
</html>
Když to pustím dostanu 404. V čem je problém?
Dělám něco špatně? Děkuji za rady.
A kdyz vlezes na tu url primo, tak to neco vypise?
url_tvoji_app/profile
Ne, jen zase 404.
Inspiruj se tady: https://github.com/masodj/openkarvina-data-service s
Díky, ještě bych se rád zeptal, co říkáš na řešení:
Vytvořím dva servlety: A a B.
Servlet A bude obsahovat ajax, který každou sekundu bude tahat data ze servletu B a cpát je na výstup. Servlet B bude vypisovat aktuální čas.
Potom když A poběží ve smyčce, může výstup vypadat:
A nebo je to hodně špatné řešení?
Na git mrknu večer, dík
Nejak moc nechapu ceho chces dosahnout, zkus to lepe popsat. Asi nechces tvorit serlvety, ale controllery, pac Spring vystavuje DispatcherServlet a ty pises uz jen Controllery.
Pokud chces realizovat hodiny, tak je to hodne spatne reseni. Nepotrebujes prece dva Controllery, staci jeden, ktery vraci serverovy cas, a ten budes volat AJAXem z JS pres fci setInterval kazdou sekundu a updatovat UI. Ale prijde mi to jako funkcionalita k nicemu...
Hodiny jsem chtěl jen jako hello world
Chci mít stránku, na které uživatel nahraje soubor a zůstane na stránce. Server bude soubor různě parsovat a hrát si s ním, což bude chvilku trvat, chci uživateli zobrazit na té stránce jednotlivé kroky, co právě server dělá se souborem.
Příklad:
Jen to bude trošku delší.
Tak vystav nejaky Controller, ktery bude vracet stav te ulohy a ten treba kazdych 10 sekund z javascpritu pomoci setInterval (v pripade vice uzivatelu to ale bude dost zatezovat server) nebo pokud pises appku pro moderni browsery muzes pouzit WebSocket a tlacit data ze serveru do stranky.
Dobře díky, tak nějak jsem to měl v plánu, na ty sockety se podivam.
Jen tak pro info, když mluvíš že spring nemá servlety, ve škole nás učili že springovskej servlet vypadá:
A od něj dědí:
To není springovský servlet? (CONTROLER - jak říkáš?)
Edit full zdrojáky: https://github.com/danekja/pia-labs/tree/master/ex ample-app-spring
Ve Springu muzes samozrejme psat i Servlety ale prijde mi to jako nesmysl pac tam mas SpringMVC, ktery te od nich odstini tim, ze pises uz jen Controllery. Tam pak funguji Spring anotace, JSON konvertery apod.