Main Index Page
We use a simple index.jsp page, where we set a button that fetches a JSON, and a <div> where the result will be displayed:<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!doctype html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;" charset=UTF-8"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"> </script> <script type="text/javascript" src="<c:url value='/resources/js/FetchingJsonWithAjax.js'/>"> </script> <title>Welcome To Fetching JSON With Ajax !!!</title> </head> <body> <h1>Fetching JSON With Ajax !!!</h1> <div id="theJson"></div> <button type="button" onclick="fetch_json()"> Fetch JSON </button> </body> </html>
Javascript
On the button, we attach the fetch_json() Javascript method, which is called when the button is clicked:var fetch_json = function() { $.ajax({ type: 'GET', url: "/spring-fetching-json-with-ajax/getJSON", dataType: 'json', async: true, success: function(result) { var tmp = "Fetch time is: " + result.milliTime + " !" + "and the JSON is:" + JSON.stringify(result); $("#theJson").html(tmp); }, error: function(jqXHR, textStatus, errorThrown) { alert("Issue fetching the JSON: " + textStatus + " " + errorThrown + " !"); } }); }
Controller
The controller is kept simple, and a MilliTime object is returned for the Ajax call:@Controller public class MyController { @RequestMapping(value = "/") public String home(Model model) { return "index"; } @RequestMapping(value="/getJSON", method = RequestMethod.GET) public @ResponseBody MilliTimeItem getJSON() { return new MilliTimeItem(System.currentTimeMillis()); } }
Running The Example
Once compiled, the example can be run with mvn tomcat:run. Then, browse:http://localhost:8585/spring-fetching-json-with-ajax/
After clicking on the Fetch JSON button, something similar to the following will be displayed:
More Spring related posts here.
No comments:
Post a Comment