今天用ajax获取后台直接传输的String数据出现读取数据为乱码的情况。查阅后解决该问题。做一份记录。
Spring中可以使用@ResponseBody将String类型数据自动转换成json对象并将该json对象传给前端ajax。
首先引入Maven jar包依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.1</version>
</dependency>
然后配置SpringMVC.xml文件
<!--MVC驱动-->
<mvc:annotation-driven>
<!--消息转换器,解决responseBody返回值乱码问题-->
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json; charset=UTF-8</value>
<value>application/x-www-form-urlencoded; charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
Controller层的部分代码
@RequestMapping(value = "isexist")
@ResponseBody
public String isexist(User user){
if (userService.isexist(user.getLoginname())){
return "已存在该用户";
} else {
return "";
}
}
前端JSP页面的部分代码
function checkname() {
$.ajax({
url : "${path}/user/isexist",
type : 'POST',
data : {"loginname":$("#用户名").val()},
dataType : 'json',
success : function(result) {
if(result==("已存在该用户")){
layer.msg(result);
$("#用户名").val("");
}
}
});
最终结果
第一次写博客,在其他博主查阅资料已解决该问题。有点小激动^_^!