springMVC 和ajax 最早進數據交互方式和 406錯誤處理

一.引入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>
相關文章
相關標籤/搜索