A Simple Example of AJAX in a Spring MVC Application

  // Fetch book details via AJAX
  $('.book-link').click(function(event) {
    event.preventDefault();
    const bookId = $(this).data('id');
    fetchBookDetails(bookId);
  });

  // Test function to set a value
  $('#testButton').click(function() {
    $('#bookIsbn').val('Test ISBN');
  });
});

function fetchBookDetails(bookId) {
  $.ajax({
    url: '/books/api/details',
    method: 'GET',
    data: { id: bookId },
    success: function(book) {
      $('#bookIsbn').val(book.isbn);
      $('#bookAuthor').val(book.author);
      $('#bookPrice').val(book.price);
      $('#bookPublisher').val(book.publisher);
    },
    error: function() {
      alert('Failed to fetch book details.');
    }
  });
}

Book List

No books available.

1. ID: ${book.id} - ${book.title} Selected Book Details

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/books")
public class BookController {

    @Autowired
    private BookService bookService;

    @GetMapping
    public ModelAndView listAllBooks(Map<string object> model) {
        List<book> bookList = bookService.getAllBooks();
        model.put("bookList", bookList);
        return new ModelAndView("bookList");
    }

    @GetMapping("/view/{bookId}")
    public ModelAndView viewBookDetails(@PathVariable long bookId, Map<string object> model) {
        Book selectedBook = bookService.getBookById(bookId);
        model.put("selectedBook", selectedBook);
        return new ModelAndView("bookDetails");
    }

    @GetMapping("/api/details")
    @ResponseBody
    public Book getBookDetailsById(@RequestParam long id) {
        return bookService.getBookById(id);
    }
}
</string></book></string></p></html>

Tags: Spring MVC JSP JSTL jquery Ajax

Posted on Mon, 18 May 2026 12:54:30 +0000 by Charles Wong