spring使用了jackson类库,帮助我们在java对象和json、xml数据之间的互相转换。他可以将控制器返回的对象直接转换成json数据,供客户端使用。客户端也可以传送json数据到服务器进行直接转换。
第一步,导入spring jar包(commons-logging-1.0.4.jar、jackson-core-asl-1.8.7.jar和jackson-mapper-asl-1.8.7.jar)
第二步,项目配置文件web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
第三步,springMVC配置文件springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd" > <!-- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 --> <context:component-scan base-package="com.test.controller" /> <mvc:annotation-driven/> <!--对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
第四步,实体类Employee.java
package com.test.model; public class Employee { private int id; private String name; public Employee(int id, String name) { super(); this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
第五步,控制器AjaxController.java
package com.test.controller; import java.util.ArrayList; import java.util.List; 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.ResponseBody; import com.test.model.Employee; @Controller public class AjaxController { //@ResponseBody此注解用于处理ajax请求,返回值可以是任何值,spring会自动转换为json对象 @RequestMapping(value = "/ajax", method = RequestMethod.GET) public @ResponseBody List<Employee> testAjax() throws Exception { List<Employee> list = new ArrayList<Employee>(); list.add(new Employee(1, "赵四")); list.add(new Employee(2, "王五")); return list;//注意返回此时值可以不再是一般的String } }
前台页面/ajax.jsp
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>测试ajax</title> <script type="text/javascript"> function createAjaxObject(){ var request; if(window.XMLHttpRequest){ request = new XMLHttpRequest(); }else{ request = new ActiveXObject("Msxml2.XMLHTTP");//ie } return request; } function sendAjaxRequest(){ var request = createAjaxObject(); request.open("get", "ajax"); //必须加上此头,spring才知道发出的是ajax请求 request.setRequestHeader("accept", "application/json"); request.onreadystatechange = function(){ eval("var result = "+request.responseText);//eval函数 document.getElementById("div").innerHTML = result[0].id + " " + result[0].name; }; request.send(null); } </script> </head> <body> <a href="javascript:void(0)" onclick="sendAjaxRequest()">测试Ajax</a> <div id="div"></div> </body> </html>
浏览器输入:
http://127.0.0.1:9900/springmvc_008_ajax/ajax.jsp
页面显示:
相关推荐
在SpringMVC中,Ajax请求通常涉及到以下几个关键步骤: 1. **前端准备**: - 首先,你需要在HTML页面中引入jQuery库,因为它是广泛使用的JavaScript库,提供了方便的Ajax函数。 - 在HTML元素上添加事件监听器,...
前端JavaScript代码可以监听用户的事件(如点击按钮),然后发送Ajax请求到服务器,获取数据后动态更新页面。 下面是一个简单的Ajax请求示例,使用jQuery库: ```javascript $.ajax({ url: '/api/posts', // 调用...
在本文中,我们将深入探讨如何使用SpringMVC和Ajax实现异步上传图片并实时显示的功能。这个技术组合常用于Web应用开发中,提供流畅的用户体验,避免页面刷新带来的不便。 首先,SpringMVC是Spring框架的一部分,专...
在本教程中,我们将探讨如何结合`SpringMVC`和`Ajax`来实现异步文件上传,并讨论短视频背景以及`a`标签绑定文件域的相关知识。 1. **SpringMVC中的文件上传** - **MultipartFile接口**:`SpringMVC`提供了一个名为...
本示例将深入探讨如何在Spring MVC项目中整合Ajax请求,以提供更流畅的用户体验。 首先,让我们理解Ajax的核心概念。Ajax(Asynchronous JavaScript and XML)允许网页在不刷新整个页面的情况下与服务器交换数据并...
2. **定义SpringMVC Controller**:在服务器端,创建一个SpringMVC的Controller类,定义一个处理Ajax请求的方法。这个方法通常会带有`@RequestMapping`注解,指明该方法将处理特定的URL请求。 3. **数据交换格式**...
2. **SpringMVC配置**:在SpringMVC的配置文件中,定义一个处理Ajax请求的Controller方法,通常会使用`@RequestMapping`注解来指定URL路径。此方法应接收前端发送的参数,并进行相应的业务处理。 3. **处理业务逻辑...
Ajax的核心在于使用JavaScript异步地从服务器获取数据,更新页面的部分内容,而无需刷新整个页面。这提供了更好的用户体验,因为用户可以在等待响应时继续使用其他功能。在SpringMVC中,可以使用Ajax来实现无刷新的...
SpringMVC使用Ajax异步提交请求完成登录-附件资源
例如,用户在前端进行某些操作,如点击按钮或填写表单,jQuery可以监听这些事件并发起Ajax请求。使用$.ajax()方法,我们可以设置URL(指向SpringMVC的Controller方法),类型(GET或POST),数据(发送给服务器的...
在这种情况下,Jackson库被用作处理JSON和Spring MVC中的Ajax请求。 Jackson是Java领域中最流行的JSON库之一,由 FasterXML 维护。标题中提到的三个jar包分别是Jackson框架的不同组成部分: 1. `jackson-...
当Ajax请求成功时,`success`回调函数会被调用,参数`data`即为服务器返回的Json对象。你可以根据需要解析并操作这个数据,如更新DOM元素。 5. **错误处理** 如果请求过程中发生错误,`error`回调会被调用,提供...
总结一下,SpringMVC通过集成Jackson库,提供了对Ajax请求的高效支持,使得开发者能够方便地处理JSON数据,实现页面的异步更新。在实际项目中,结合前端JavaScript库如jQuery或Vue.js,可以构建出高度交互的Web应用...
你需要一个表单来选择文件,以及一个按钮触发Ajax请求。使用`FormData`对象来封装文件数据,以便通过Ajax发送。 ```html 上传 ``` ```javascript document.getElementById('uploadButton').addEventListener...
创建一个Spring MVC Controller,定义一个处理Ajax请求的方法。使用`@ResponseBody`注解,告诉Spring MVC返回的数据应该是JSON格式: ```java @RestController public class AjaxController { @...
在Ajax请求中,通常JSON被用作数据传输格式,因为它可以直接被JavaScript解析为对象,无需额外的序列化和反序列化过程。 **Spring MVC、Ajax和JSON的结合** 在Spring MVC中,Controller可以返回JSON格式的数据响应...
在本文中,我们将深入探讨如何使用Spring MVC与Ajax实现异步文件上传,这是一项常见的Web开发任务,可以显著提升用户体验。我们将关注以下关键知识点: 1. **Spring MVC**:Spring MVC是Spring框架的一个模块,用于...
1. **Ajax请求的创建**:在JavaScript中,我们可以使用XMLHttpRequest对象或者更现代的fetch API来发起Ajax请求。例如,使用jQuery库,我们可以编写如下代码: ```javascript $.ajax({ type: 'POST', url: '/...