// 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>