一.引入spring-web-3.2.12.RELEASE.jar, spring-webmvc-3.2.12.RELEASE.jar, jackson-core-asl.jar,jackson-mapper-asl-1.9.3.jar html
二. js採用ajax發送請求和接收數據,數據格式爲jsonjava
$(document).ready( function() { jQuery.ajax( { type : 'GET', contentType : 'application/json', url : 'user/list', dataType : 'json', success : function(data) { if (data && data.success == "true") { $('#info').html("共" + data.total + "條數據。<br/>"); $.each(data.data, function(i, item) { $('#info').append( "編號:" + item.id + ",姓名:" + item.username + ",年齡:" + item.age); }); } }, error : function() { alert("error") } }); });
三. controller中是用註解@ResponseBody 能夠將結果(一個包含字符串和JavaBean的Map),轉換成JSON,web
使用 @RequestBody 註解前臺只須要向 Controller 提交一段符合格式的 JSON,Spring 會自動將其拼裝成 bean。 ajax
@Controller @RequestMapping("/user") public class DemoController { private Logger logger = LoggerFactory.getLogger(DemoController.class); @RequestMapping(value = "/list", method = RequestMethod.GET) @ResponseBody public Map<String, Object> getUserList() { logger.info("列表"); List<UserModel> list = new ArrayList<UserModel>(); UserModel um = new UserModel(); um.setId("1"); um.setUsername("sss"); um.setAge(222); list.add(um); Map<String, Object> modelMap = new HashMap<String, Object>(3); modelMap.put("total", "1"); modelMap.put("data", list); modelMap.put("success", "true"); return modelMap; } }
若是這種交互方式,報有以下錯誤:
spring
頁面 : http 請求返回錯誤: 406json
後臺: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representatiomvc
說明後臺返回的json數據格式有誤,應在spring xml文件中加上以下代碼:app
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jacksonMessageConverter"/> </list> </property> </bean>