现在,在网页开发中,AJAX局部更新必不可少,在springMVC中为开发者提供了一种简洁的实现不同数据格式交互的机制(JSON,xml),springMVC主要利用类型转换器(mrssageConverters)将前台信息转换成开发者需要的格式。然后在相应的Controller方法接收参数前添加@requestBody注解,进行数据转换,或者在方法的返回值类型处添加@ResponseBody注解,将返回信息转换为相关格式的数据。
1.导包
jackson-core-asl.jar
jackson-mapper-asl.jar
2.编写Controller方法
@Controller
public class JsonController {
@RequestMapping(value="json.action")
@ResponseBody
public String jsonController(@RequestBody String data){
System.out.println(data);
return data;
}
}
3.编写jsp文件
<textarea id="jsonArea" placeholder="请输入json文本" style="width: 300px; height: 200px;"></textarea><br />
<button onclick="submitMsg()">提交</button><br>
<div id="area"></div>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
function submitMsg(){
var value = $("#jsonArea").val();
$.ajax({
type:"post",
url:"json.action",
contentType:"application/json;charset=utf-8",
data:value,
success:function(data){
alert(data);
$("#area").html(data);
}
});
}
</script>
在这里因为使用了jq框架,所以需要连接jq包,在这里需要注意一点的是:因为我们平常开发的时候,我们的配置文件都不会直接放在src路径下,而是会新创一个config文件夹存放配置文件,在web.xml中初始化配置文件,也就是在web.xml中servlet标签中添加了
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
会连接不上css,或者jq,或者图片文件,此时,我们需要在web.xml文件中添加
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
就可以连接到js或者css文件,图片同理。
最后还有一个就是因为spring默认使用的一个编码是ISO-8859-1,所以json响应网页的时候,网页接收到json字符串会出现中文乱码,在springMVC的配置文件中添加
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="utf-8"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
即可解决乱码问题