Springmvc异步发送表单数据到JavaBean,并响应JSON文本返回 (14)

1) 提交表单后,将JavaBean信息以JSON文本形式返回到浏览器

·Emp实体类转换成json

·导入相关jar包jackson-core-asl-1.9.11.jar和jackson-mapper-asl-1.9.11.jar

·在springmvc.xml中配置

  	  <!-- 配适器  转换成json数据-->
      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
      		<property name="messageConverters">
      	   		<list>
      	   			<!-- 就是这个类将Object转换成json数据-->
      				<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
      	   		</list>
      		</property>
      </bean>


·bean2json.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP '11.jsp' starting page</title>
    <script type="text/javascript" src="../js/jquery-1.8.2.js"></script></head>
  <body>
	<input type="button" value="Emp实体类转json"><p>	
	<!-- Emp实体类转json数据 -->
	<script type="text/javascript">
		/* 选中第一个button */
		$(":button:first").click(function(backData,textStaut,ajax){
			var url = "${pageContext.request.contextPath}/emp/bean2json.action";
			var sendData = null;
			/* function(backData,textStaut,ajax) 这是一个回调函数*/
			$.post(url,sendData,function(backData,textStaut,ajax){
				alert(ajax.responseText);
			});
		});
	</script>
  </body>
</html>
·Emp.java
public class Emp {
	private String username;
	private int sal;
	private Date hiredate;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public int getSal() {
		return sal;
	}
	public void setSal(int sal) {
		this.sal = sal;
	}
	public Date getHiredate() {
		return hiredate;
	}
	public void setHiredate(Date hiredate) {
		this.hiredate = hiredate;
	}
	@Override
	public String toString() {
		return "Emp [username=" + username + ", sal=" + sal + "]";
	}
	
}
·控制类EmpAction.java

@Controller
@RequestMapping(value="/emp")
public class EmpAction {

	/**
	 * @ResponseBody Emp 表示让springmvc将Emp对象转成json格式的数据
	 * 					在这里是返回一个json的字符串
	 * @return
	 */
	@RequestMapping(value="/bean2json")
	public @ResponseBody Emp bean2json(){
		//这里模拟从数据库查出
		Emp emp = new Emp();
		emp.setUsername("哈哈");
		emp.setSal(30000);
		emp.setHiredate(new Date());
		return emp;
	}
}
然后在 bean2json.jsp页面上就会以json格式的数据返回


·List<Emp>转json数据

·bean2json.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script type="text/javascript" src="../js/jquery-1.8.2.js"></script></head>
  <body>	
	<input type="button" value="List<Emp>转json"><p>		
	<!--List<Emp>转json数据 -->
	<script type="text/javascript">
		/* :button:eq(1):选中第一个button,0代表第一个 */
		$(":button:eq(1)").click(function(backData,textStaut,ajax){
			var url = "${pageContext.request.contextPath}/emp/listbean2json.action";
			var sendData = null;
			/* function(backData,textStaut,ajax) 这是一个回调函数*/
			$.post(url,sendData,function(backData,textStaut,ajax){
				alert(ajax.responseText);
			});
		});
	</script>	
  </body>
</html>

·EmpAction.java
	@RequestMapping(value="/listbean2json")
	public @ResponseBody List<Emp> listbean2json(){
		List<Emp> empList = new ArrayList<Emp>();
		empList.add(new Emp("哈哈",20000,new Date()));
		empList.add(new Emp("嗯嗯",30000,new Date()));
		empList.add(new Emp("问问",40000,new Date()));
		return empList;
	}
返回的数据就是json的数据


·Map<String,Object>转json数据

·bean2json.jsp

<input type="button" value="Map<String,Object>转json"><p>

	<!--Map<Emp>转json数据 -->
	<script type="text/javascript">
		/* :button:eq(2):选中第一个button,0代表第一个 */
		$(":button:eq(2)").click(function(backData,textStaut,ajax){
			var url = "${pageContext.request.contextPath}/emp/map2json.action";
			var sendData = null;
			/* function(backData,textStaut,ajax) 这是一个回调函数*/
			$.post(url,sendData,function(backData,textStaut,ajax){
				alert(ajax.responseText);
			});
		});
	</script>	
	
· EmpAction..java
	@RequestMapping(value="/map2json")
	public @ResponseBody Map<String,Object> Map2json(){
		List<Emp> empList = new ArrayList<Emp>();
		empList.add(new Emp("哈哈",20000,new Date()));
		empList.add(new Emp("嗯嗯",30000,new Date()));
		empList.add(new Emp("问问",40000,new Date()));
		Map<String,Object> map = new LinkedHashMap<String, Object>();
		map.put("total",empList.size());
		map.put("rows",empList);
		return map;
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值