直入主題--html
頁面表單異步提交:$.post('<%=request.getContextPath()%>/web/register.html', $(form).serialize(), function(data){...});java
java後臺springMVC的controller接受請求:web
@RequestMapping("register")
@ResponseBody
public Map<String, String> register(HttpServletRequest request, HttpServletResponse response, User user) {
Map<String, String> resMap = loginService.insertUser(user);
return resMap;
}ajax
錯誤描述,springMVC的controller中接收到頁面發送的ajax請求,java後臺處理時報錯:spring
[DEBUG] [2016-02-14 20:08:09] org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(133) | Resolving exception from handler [com.org.action.LoginController@4c79ace8]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
[DEBUG] [2016-02-14 20:08:09] org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(133) | Resolving exception from handler [com.org.action.LoginController@4c79ace8]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
[DEBUG] [2016-02-14 20:08:09] org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(133) | Resolving exception from handler [com.org.action.LoginController@4c79ace8]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
[DEBUG] [2016-02-14 20:08:09] org.springframework.web.servlet.DispatcherServlet.processDispatchResult(1034) | Null ModelAndView returned to DispatcherServlet with name 'rest': assuming HandlerAdapter completed request handling
[DEBUG] [2016-02-14 20:08:09] org.springframework.web.servlet.FrameworkServlet.processRequest(999) | Successfully completed request
[DEBUG] [2016-02-14 20:08:09] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(251) | Returning cached instance of singleton bean 'sqlSessionFactory'sql
此時對應的頁面報錯爲:json
POST http://127.0.0.1:8080/maven-web-demo/web/register.html 406 (Not Acceptable)spring-mvc
緣由:缺乏spring-mvc的json配置mvc
解決方法:app
1.添加spring-mvc的json依賴jar包:jackson-core和jackson-databind
2.在spring-mvc.xml中添加:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
OK,問題解決!