jQuery Ajax
In JSP, create a simple search form and send the form request with jQuery
$.ajax
.
<%@page session="false"%> <%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Search Form
You just add new Person
” + “Name: ” + data.name + “
” + “Age: ” + data.age; $(“#ajax-response”).html(result); }, error : function(e) { console.log(“ERROR: “, e); } }); } function searchViaAjax() { var name = $(“#query”).val(); $.ajax({ type : “GET”, contentType : “application/json”, url : “${home}home/search/”, data : { name : name }, dataType : ‘json’, timeout : 100000, success : function(data) { console.log(“SUCCESS: “, data); if (data != null) { var result = ”
spring mvc jquery ajax example
Spring MVC (Spring Model-View-Controller) là một framework Java phổ biến được sử dụng để phát triển ứng dụng web. Nó cung cấp một cách tiếp cận dễ dùng và linh hoạt để xây dựng các ứng dụng web sử dụng mô hình MVC.
Trong bài viết này, chúng ta sẽ tìm hiểu và thực hiện một ví dụ về Spring MVC jQuery Ajax để hiểu rõ hơn về cách kết hợp ba công nghệ này và xây dựng một ứng dụng web động.
1. Thiết lập môi trường phát triển
Trước tiên, chúng ta cần thiết lập môi trường phát triển bằng cách cài đặt JDK và một IDE như Eclipse hoặc IntelliJ IDEA. Sau đó, ta tạo một dự án Spring MVC bằng cách sử dụng các công cụ hỗ trợ.
2. Thêm các thư viện cần thiết
Sau khi tạo dự án Spring MVC thành công, chúng ta cần thêm các thư viện cần thiết cho việc sử dụng Spring MVC và jQuery. Thư viện Spring MVC giúp chúng ta xây dựng các thành phần của ứng dụng web, trong khi thư viện jQuery cho phép chúng ta làm việc với Ajax dễ dàng hơn.
3. Tạo Controller Spring MVC
Tiếp theo, chúng ta tạo một Controller trong Spring MVC để xử lý yêu cầu từ client. Controller sẽ xác định các phương thức xử lý yêu cầu và có thể được đánh dấu bằng @Controller.
4. Tạo view trong Spring MVC
Sau khi xác định các phương thức xử lý yêu cầu, chúng ta cần tạo các view để hiển thị giao diện cho người dùng. Trong Spring MVC, chúng ta có thể sử dụng JSP (JavaServer Pages) hoặc các công cụ như Thymeleaf hoặc Freemarker để tạo view.
5. Xử lý yêu cầu Ajax bằng jQuery
Để xử lý yêu cầu Ajax từ client, chúng ta cần sử dụng jQuery. Đầu tiên, tạo một file JavaScript và sử dụng phương thức $.ajax để gửi yêu cầu Ajax đến server. Sau đó, chúng ta xử lý kết quả trả về từ server.
6. Gửi yêu cầu Ajax từ client đến server
Khi gửi yêu cầu Ajax, chúng ta có thể binding dữ liệu từ form hoặc các trường input khác trong trang web. Sau đó, chúng ta sử dụng phương thức POST hoặc GET để gửi yêu cầu Ajax đến server.
7. Xử lý yêu cầu Ajax trên server
Sau khi nhận yêu cầu Ajax từ client, chúng ta cần xử lý yêu cầu trong Spring MVC controller. Controller sẽ xử lý yêu cầu và trả về kết quả dưới dạng JSON hoặc XML.
8. Cập nhật giao diện khi nhận kết quả Ajax
Cuối cùng, chúng ta sử dụng jQuery để cập nhật giao diện trong trang web sau khi nhận kết quả từ server. Chúng ta có thể hiển thị dữ liệu trả về từ server trong trang web một cách linh hoạt và tương tác với người dùng.
FAQs:
1. Tại sao chúng ta cần sử dụng Spring MVC?– Spring MVC cung cấp một kiến trúc rõ ràng và mô hình MVC, giúp tái sử dụng mã nguồn dễ dàng và tạo ra các ứng dụng web linh hoạt và bảo mật.
2. Có những thư viện jQuery nào hỗ trợ Ajax?– jQuery cung cấp các phương thức như $.ajax, $.get, và $.post để gửi yêu cầu Ajax đến server và xử lý kết quả trả về.
3. Tại sao chúng ta sử dụng JSON hoặc XML để truyền dữ liệu qua Ajax?– JSON và XML là định dạng thông dụng để truyền dữ liệu qua Ajax vì chúng hỗ trợ cấu trúc dữ liệu linh hoạt và dễ đọc.
4. Làm thế nào để xử lý lỗi khi gửi yêu cầu Ajax?– Trong jQuery, chúng ta có thể sử dụng phương thức $.ajaxError hoặc xử lý các trường hợp lỗi trong phương thức xử lý yêu cầu từ server.
5. Có cách nào khác để cập nhật giao diện trang web sau khi nhận kết quả từ server?– Ngoài việc sử dụng jQuery, chúng ta cũng có thể sử dụng các công nghệ khác như AngularJS hoặc React để cập nhật giao diện trang web một cách linh hoạt và hiệu quả.
Trên đây là một ví dụ về Spring MVC jQuery Ajax để hiểu rõ hơn về cách kết hợp ba công nghệ này và xây dựng một ứng dụng web động. Việc sử dụng Spring MVC và jQuery Ajax giúp chúng ta phát triển các ứng dụng web hiệu quả và tốt hơn. Chúc bạn thành công!
Từ khoá người dùng tìm kiếm: spring mvc jquery ajax example
Chuyên mục: Top 92 spring mvc jquery ajax example
Spring 4 MVC Ajax JQuery Example – Spring MVC Tutorial for beginners
How to get data using Ajax in jQuery in MVC?
Trong các ứng dụng web hiện đại, việc tải dữ liệu mà không làm tải lại trang web đang trở thành xu hướng phổ biến. Ajax là một kỹ thuật mạnh mẽ cho phép chúng ta thao tác dữ liệu bất đồng bộ trong các ứng dụng web. Trong kịch bản này, chúng tôi sẽ tìm hiểu cách lấy dữ liệu bằng Ajax trong jQuery trong mô hình MVC.
1. Đầu tiên, hãy xác định cấu trúc dự án của chúng ta. Trong mô hình MVC, chúng ta có ba phần quan trọng: mô hình (model), giao diện người dùng (view) và điều khiển (controller).
– Mô hình (model): Đây là nơi chúng ta định nghĩa các lớp và phương thức để truy xuất dữ liệu từ nguồn dữ liệu (ví dụ: cơ sở dữ liệu).– Giao diện người dùng (view): Đây là phần giao diện mà người dùng sẽ nhìn thấy và tương tác. Nó có thể là các trang web, form đăng nhập hoặc các thành phần tương tác như nút bấm và cửa sổ pop-up.– Điều khiển (controller): Đây là nơi chúng ta xử lý các yêu cầu từ người dùng và tương tác với mô hình và giao diện người dùng.
2. Tiếp theo, chúng ta cần chắc chắn rằng chúng ta đã bao gói jQuery trong dự án của mình. Điều này giúp chúng ta thao tác với các phần tử DOM một cách dễ dàng hơn và xử lý Ajax một cách thuận tiện. Sử dụng thẻ
[Bài đọc] JQuery Ajax và kiến thức cơ bản
AJAX – “Asynchronous JavaScript and XML” – là một bộ công cụ cho phép load dữ liệu từ server mà không yêu cầu tải lại trang. Nó sử dụng chức năng sẵn có XMLHttpRequest(XHR) của trình duyệt để thực hiện một yêu cầu đến server và xử lý dữ liệu server trả về.
jQuery cung cấp method $.ajax và một số methods tiện lợi giúp bạn làm việc với XHRs thông qua trình duyệt một cách dễ dàng hơn.
1. Phương thức load()
Cú pháp đơn giản cho phương thức load() trong jQuery: [selector].load( URL, [data], [callback] );
Trong đó:
URL − URL của ngồn Server-Side để Yêu cầu (Request) được gửi tới. Nó có thể là CGI, ASP, JSP, hoặc PHP script…
Data − là tham số tùy ý, biểu diễn một đối tượng mà các thuộc tính của nó được xếp theo thứ tự vào trong các tham số được mã hóa một cách thích hợp để được truyền tới yêu cầu (Request). Nếu được xác định, Request được tạo sử dụng phương thức POST. Nếu bị bỏ qua, phương thức GET được sử dụng.
Callback − Một hàm callback được gọi sau khi dữ liệu phản hồi đã được tải vào trong các phần tử của tập hợp đã kết nối, tham số đầu tiên được truyền tới hàm này là văn bản phản hồi từ Server và tham số thứ hai là mã hóa trạng thái
The jQuery Example
src = “https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js”>
Click on the button to load /jquery/result.html file −
STAGE
Ở đây load() khởi tạo một Ajax request tới URL là file “result.html” .Sau khi tải tệp này, tất cả nội dung sẽ được điền vào bên trong
2. Phương thức getJSON()
Cú pháp
[selector].getJSON( URL, [data], [callback] );
Trong đó:
URL – URL của tài nguyên phía máy chủ được liên hệ qua phương thức GET
DATA – Một đối tượng có các thuộc tính đóng vai trò là cặp key/value được sử dụng để xây dựng chuỗi truy vấn được thêm vào URL hoặc chuỗi truy vấn được định dạng sẵn và được mã hóa
Callback – Một chức năng được gọi khi yêu cầu hoàn thành. Giá trị dữ liệu phản hồi dưới dạng chuỗi JSON được truyền dưới dạng tham số đầu tiên của request và tham số thứ hai là trạng thái.
Live Demo
The jQuery Example
src = “https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js”>
Click on the button to load result.json file −
STAGE
Ở đây, phương thức tiện ích JQuery getJSON () khởi tạo một yêu cầu Ajax đến tệp URL result.json được chỉ định. Sau khi tải tệp này, tất cả nội dung sẽ được chuyển đến chức năng gọi lại, cuối cùng sẽ được đưa vào bên trong
3. Phương thức get(), post()
Cú pháp
$.get( url, [data], [callback], [type] )
$.post( url, [data], [callback], [type] )
Trong đó:
URL – Là chuỗi chưa URL để gửi request
Data – Tham số tùy chọn đại diện cho các cặp key/value sẽ được gửi đến máy chủ
Callback – Là một chức năng được gọi khi yêu cầu hoàn thành
Type – Tham số tùy chọn này đại diện cho loại dữ liệu được trả về cho hàm gọi lại: “xml”, “html”, “script”, “json”, “jsonp” hoặc “text”.
The jQuery Example
src = “https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js”>
Click on the button to load result.html file −
STAGE
value = “Load Data” />
The jQuery Example
src = “https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js”>
Click on the button to load result.html file −
STAGE
4. Phương thức ajax()
Cú pháp
jQuery.ajax( options )
Trong đó:
Options: Là một tập hợp các cặp key/value cấu hình yêu cầu Ajax
The jQuery Example
src = “https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js”>
Click on the button to load result.html file:
STAGE
Create Spring MVC Project
On the Eclipse, create a Spring MVC project in Spring Boot
Enter Project Information:
- Name: LearnSpringMVCWithRealApps
- Group: com.demo
- Artifact: LearnSpringMVCWithRealApps
- Description: Learn Spring MVC with Real Apps
- Package: com.demo
Select the technologies and libraries to be used:
- Web
Click Next button to show Site Information for project
Click Finish button to finish create Spring MVC project
Configure pom.xml
4.0.0
com.demo
LearnSpringMVCWithRealApps
0.0.1-SNAPSHOT
jar
LearnSpringMVCWithRealApps
Learn Spring MVC with Real Apps
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
UTF-8 UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
javax.servlet.jsp.jstl
javax.servlet.jsp.jstl-api
1.2.1
taglibs
standard
1.1.2
org.apache.tomcat.embed
tomcat-embed-jasper
provided
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
Configure application.properties
spring.mvc.view.prefix = /WEB-INF/views/ spring.mvc.view.suffix = .jsp spring.mvc.static-path-pattern=/resources/** server.port=9596
Create Resources
JQuery
Create new folder named js in src\main\resources\static folder. Copy jquery file to this folder
Entities Class
Create new package, named com.demo.entities. In this package, create entities class as below:
Product Entity
Create new java class, named Product.java
package com.demo.entities; import java.io.Serializable; public class Product implements Serializable { private String id; private String name; private double price; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public Product(String id, String name, double price) { this.id = id; this.name = name; this.price = price; } public Product() { } }
Models Class
Create new package, named com.demo.models. In this package, create ProductModel class as below:
package com.demo.models; import java.util.ArrayList; import java.util.List; import com.demo.entities.Product; public class ProductModel { public Product find() { return new Product("p01", "name 1", 20); } public ListfindAll() { List products = new ArrayList (); products.add(new Product("p01", "name 1", 20)); products.add(new Product("p02", "name 2", 21)); products.add(new Product("p03", "name 3", 22)); return products; } }
Create Controllers
Create new package named com.demo.controllers. In this package, create controllers as below:
DemoController
Create new java class, named DemoController.java
package com.demo.controllers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("demo") public class DemoController { @RequestMapping(method = RequestMethod.GET) public String index() { return "demo/index"; } }
Create Rest API Controllers
In com.demo.controllers package, create new Spring Rest API controller give data for ajax as below:
AjaxRestController
Create new java class, named AjaxRestController.java as below:
package com.demo.controllers; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.MimeTypeUtils; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.demo.entities.Product; import com.demo.models.ProductModel; @RestController @RequestMapping("api/ajaxrest") public class AjaxRestController { @RequestMapping(value = "demo1", method = RequestMethod.GET, produces = { MimeTypeUtils.TEXT_PLAIN_VALUE }) public ResponseEntity
demo1() { try { ResponseEntity
responseEntity = new ResponseEntity
("Demo 1", HttpStatus.OK); return responseEntity; } catch (Exception e) { return new ResponseEntity
(HttpStatus.BAD_REQUEST); } } @RequestMapping(value = "demo2/{fullName}", method = RequestMethod.GET, produces = { MimeTypeUtils.TEXT_PLAIN_VALUE }) public ResponseEntity
demo2(@PathVariable("fullName") String fullName) { try { ResponseEntity
responseEntity = new ResponseEntity
("Hi " + fullName, HttpStatus.OK); return responseEntity; } catch (Exception e) { return new ResponseEntity
(HttpStatus.BAD_REQUEST); } } @RequestMapping(value = "demo3", method = RequestMethod.GET, produces = { MimeTypeUtils.APPLICATION_JSON_VALUE }) public ResponseEntitydemo3() { try { ProductModel productModel = new ProductModel(); ResponseEntity responseEntity = new ResponseEntity (productModel.find(), HttpStatus.OK); return responseEntity; } catch (Exception e) { return new ResponseEntity (HttpStatus.BAD_REQUEST); } } @RequestMapping(value = "demo4", method = RequestMethod.GET, produces = { MimeTypeUtils.APPLICATION_JSON_VALUE }) public ResponseEntity > demo4() { try { ProductModel productModel = new ProductModel(); ResponseEntity
> responseEntity = new ResponseEntity
>(productModel.findAll(), HttpStatus.OK); return responseEntity; } catch (Exception e) { return new ResponseEntity
>(HttpStatus.BAD_REQUEST); } } }
Create Views
Create new folders with path webapp\WEB-INF\views in src\main. In views folder, create JSP Pages as below:
Demo View
Create new folder named demo. Create new jsp file named index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
Ajax in Spring MVC
Structure of Spring MVC Project
Run Application
Select LearnSpringMVCWithRealAppsApplication.java file in com.demo package, right click and select Run As/Spring Boot App menu
Access index method in demo controller with following url: http://localhost:9596/demo
Output
Click Demo 1 button to call Demo1 method in AjaxRestController controller with ajax
Output
Click Demo 2 button to call Demo2 method in AjaxRestController controller with ajax
Output
Click Demo 3 button to call Demo3 method in AjaxRestController controller with ajax
Output
Click Demo 4 button to call Demo4 method in AjaxRestController controller with ajax
Output
References
I recommend you refer to the books below to learn more about the knowledge in this article:
- Spring MVC Beginners Guide – Second Edition
- Spring MVC Cookbook
- Spring MVC Blueprints
- Building RESTful Web Services with Spring 5 – Second Edition: Leverage the power of Spring 5.0, Java SE 9, and Spring Boot 2.0
- Spring Boot in Action
- Pro Spring Boot
- jQuery in Action
- JavaScript & jQuery: The Missing Manual
- Murach’s JavaScript and jQuery (3rd Edition)
EN
jQuery – Ajax GET request with Java Spring MVC controller
1 points
In this article, we’re going to have a look at how to make make AJAX GET request with jQuery.
Note: scroll to See also section to see other variants of AJAX requests.
Spring MVC AJAX Hello World Example – Kiến thức cơ bản HTTP và AJAX
Bài đăng này đã không được cập nhật trong 2 năm
Khi tìm hiểu về giao thức HTTP mình có đọc 1 số bài hướng dẫn trả lời phỏng vấn về giao thức HTTP như:
Phương thức POST bảo mật hơn GET vì dữ liệu được gửi ngầm bằng mắt thường không thể nhìn thấy được
Phương thức GET luôn luôn nhanh hơn POST vì dữ liệu gửi đi được Browser giữ lại trong cache
Phương thức GET dữ liệu được gửi tường minh, chúng ta có thể thấy trên URL nên nó không bảo mật.
Các câu trả lời ở bên trên chưa chính xác là do bạn chưa hiểu đúng về giao thức HTTP
**Trong bài hướng dẫn này mình sẽ nói đến các vấn đề sau**
1) Các khái niệm cơ bản về giao thức HTTP (GET, POST)
2) Tạo 1 web application sử dụng Spring MVC với AJAX
Giao thức HTTP( Hyper Text Transfer Protocol) là gì ? HTTP là giao thức quy ước chung để cho 2 đối tượng A và B có thể giao thông ( giao tiếp ) với nhau. Cụ thể là giao tiếp với nhau bằng 1 định dạng sử dụng chữ (text)
Ta đã biết phép căn bản của phần mềm là 2 phép đọc (read) và ghi (write) dữ liệu (Phần mềm viết ra là để xử lý dữ liệu) – phép ghi còn tách ra làm 3 phép thêm, sửa, xóa. Khi người ta thiết kế ra giao thức HTTP cũng xoay quanh các phép căn bản này của phần mềm. Từ 4 phép căn bản này sẽ tạo ra 7 HTTP method:
- 4 phép đại diện cho đọc (read):
- GET
- Trace: đọc lỗi
- Option
- Head: đọc phần header
- 3 phép đại diện cho ghi (write):
- PUT
- POST
- DELETE
Nhưng trong quá trình làm việc chúng ta gần như chỉ sử dụng 1 phép đại diện cho đọc là GET, 1 phép đại diện cho ghi là POST. Từ đây dẫn đến sự khác nhau giữa GET và POST:
- Ví dụ A muốn gửi 1 thông điệp (message) rằng A muốn đọc dữ liệu (GET) của B, như vậy A không cần mang dữ liệu lên B. Nhưng khi A muốn gửi (POST) 1 bức ảnh đến B, A phải mang dữ liệu lên B. Như vậy GET đại diện cho phép đọc sẽ không có phần body mà chỉ có header, còn POST đại diện cho phép ghi sẽ có phần body (đưa dữ liệu vào body)
- Sự khác nhau giữa cấu trúc của GET và POST sẽ ảnh hưởng đến điểm mạnh điểm yếu của POST và GET.
-
GET sẽ
nhanh
hơn POST: GET sẽ đi nhanh hơn POST trong môi trường mạng vì nó k có body. Phần server khi xử lý message này sẽ nhanh hơn vì GET chỉ có header (khi nói đến
nhanh
ta phải nhắc đến 2 khía cạnh: traffic và performance) - Điểm mạnh của POST là đưa được data lên. Nếu muốn đưa 1 đoạn video, 1 bức ảnh GET sẽ k thể nào làm được => Nhưng vì GET đi nhanh hơn nên người ta có xu hướng dùng GET nhiều hơn, thế nên những dữ liệu mà mang lên server đủ nhỏ thì người ta có thể chuyển dữ liệu theo đường GET
- GET và POST đều có tính bảo mật như nhau, vì đối với GET ta có thể sử dụng kỹ thuật ajax để parametter k hiển thị lên trên url
**Tạo 1 project sử dụng Spring MVC + Ajax bằng maven, server chạy bằng jetty **
Ajax là gì ? Ajax là một khái niệm có thể mới lạ với những bạn newbie mới học lập trình web nên đôi lúc các bạn nghĩ nó là một ngôn ngữ lập trình mới. Nhưng thực tế không như vậy, ajax là một kỹ thuật viết tắt của chữ AJAX = Asynchronous JavaScript and XML, đây là một công nghệ giúp chung ta tạo ra những Web động mà hoàn toàn không reload lại trang nên rất mượt và đẹp. Đối với công nghệ web hiện nay thì ajax không thể thiếu, nó là một phần làm nên sự sinh động cho website
Các công nghệ sẽ sử dụng trong phần hg dẫn này:
- Spring 4.2.2.RELEASE
- Jackson 2.6.3
- Logback 1.1.3
- jQuery 1.10.2
- Maven 3
- JDK 1.8
- Tomcat 8 or Jetty 9
- Eclipse 4.5
- Boostrap 3
**Cấu trúc project **
**1)Project dependency: **
4.0.0
com.viblo
viblo-spring-learn-ajax
war
1.0-SNAPSHOT
viblo-spring-learn-ajax Maven Webapp
http://maven.apache.org
1.8
4.2.2.RELEASE
2.6.3
1.1.3
1.7.12
1.2
3.1.0
org.springframework
spring-webmvc
${spring.version}
commons-logging
commons-logging
com.fasterxml.jackson.core
jackson-core
${jackson.version}
com.fasterxml.jackson.core
jackson-databind
${jackson.version}
javax.servlet
jstl
${jstl.version}
org.slf4j
jcl-over-slf4j
${jcl.slf4j.version}
ch.qos.logback
logback-classic
${logback.version}
javax.servlet
javax.servlet-api
${servletapi.version}
provided
viblo-spring-learn-ajax
org.apache.maven.plugins
maven-surefire-plugin
2.12.4
true
-Xmx2524m
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
1.8
UTF-8
true
-XDignore.symbol.file
org.eclipse.jetty
jetty-maven-plugin
9.3.0.M1
-Xmx2048m -Xms1536m -XX:PermSize=128m -XX:MaxPermSize=512m
manual
lib
${basedir}/target/viblo-spring-learn-ajax/WEB-INF/lib
8080
60000
${basedir}/src/main/webapp
${basedir}/src/main/webapp/WEB-INF/web.xml
${basedir}/target/classes
2)AjaxController AjaxController sẽ xử lý các ajax request từ phía client như thêm, hoặc tìm kiếm ! Sau đó trả về kết quả dưới dạng json cho client.
@Controller @RequestMapping("/home") public class AjaxController { private ListlistPerson = new ArrayList (); @RequestMapping(method = RequestMethod.GET) public ModelAndView home() { ModelAndView mv = new ModelAndView("web.home"); return mv; } @RequestMapping(value = "/addnew", method = RequestMethod.GET) public @ResponseBody String addNew(HttpServletRequest request) { String name = request.getParameter("name"); String age = request.getParameter("age"); Person person = new Person(name, Integer.parseInt(age)); listPerson.add(person); ObjectMapper mapper = new ObjectMapper(); String ajaxResponse = ""; try { ajaxResponse = mapper.writeValueAsString(person); } catch (JsonProcessingException e) { e.printStackTrace(); } return ajaxResponse; } @RequestMapping(value = "/search", method = RequestMethod.GET) public @ResponseBody String searchPerson(HttpServletRequest request) { String query = request.getParameter("name"); Person person = searchPersonByName(query); ObjectMapper mapper = new ObjectMapper(); String ajaxResponse = ""; try { ajaxResponse = mapper.writeValueAsString(person); } catch (JsonProcessingException e) { e.printStackTrace(); } return ajaxResponse; } public Person searchPersonByName(String query) { for (Person p : listPerson) { if (p.getName().equals(query)) { return p; } } return null; }
**3)Model Class ** Person class có nhiệm vụ đóng gói dữ liệu của người dùng nhập vào hoặc dữ liệu được trả về của server !
public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name=name; this.age=age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
**4)Jquery Ajax **
Trong file JSP, ta tạo 2 form thêm và tìm kiếm đơn giản gửi ajax request bằng
$.ajax
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Spring Ajax Example
Add New Person
Search Person by name
${message}
Step-3
Make sure you have below package structure.
Step-4
Open Web Browser and visit this URL: http://localhost:8080/CrunchifySpringMVCTutorial/ajax.html
Another must read: https://crunchify.com/how-to-write-json-object-to-file-in-java/
Step-5
Checkout your Result..
Step-6
Let’s do some debugging. You should be able to see below debugging statements in
Eclipse Console
to verify that your AJAX call is working and hitting Controller…
And you are all set.. Cheers.. And as usual let me know for any query..
Spring MVC: Ajax & JQuery
Today I want to demonstrate how to integrate AJAX into a Spring MVC application. I’m going to use JQuery on a client side for sending of requests and receiving of responses. This tutorial will be based on one of my previous tutorials about Spring MVC and REST services. In this article you will read how to make a web-application more interactive with the help of asynchronous requests.
You just search Person: " + data.name + "
"; $("#ajax-response").html(result); } else { var result = "
No person found
"; $("#ajax-response").html(result); } }, error : function(e) { console.log("ERROR: ", e); } }); }