qw

	// 主页
	@RequestMapping(value = "/home")
	public ModelAndView home() {
		ModelAndView MV = new ModelAndView("loan/loan_list");
		return MV;
	}
	public LoanSummaryForm setForm(LoanSummary entity) {
		LoanSummaryForm page=new LoanSummaryForm();
		BigDecimal num=new BigDecimal(100);
		page.setiAutoID(entity.getiAutoID());
		page.setsMobile(entity.getsMobile());
		page.setiAmount(new BigDecimal(entity.getiAmount()).divide(num));
		page.setiMoney(new BigDecimal(entity.getiMoney()).divide(num));
		page.setsBankName(entity.getsBankName());
		page.setsBankCard(entity.getsBankCard());
		page.setiGetCashTime(DateUtil.date2String(new Date(entity.getiGetCashTime()*1000), DateUtil.TIME_FORMATTERN));
		page.setiStatus(entity.getiStatus());
		page.setiCreateTime(DateUtil.date2String(new Date(entity.getiCreateTime()*1000), DateUtil.TIME_FORMATTERN));
		page.setiUpdateTime(DateUtil.date2String(new Date(entity.getiUpdateTime()*1000), DateUtil.TIME_FORMATTERN));
		return page;
	}
	// 列表
	@RequestMapping(value = "/list", method = RequestMethod.POST)
	@ResponseBody
	 public Map<String, Object> listAll(@RequestBody LoanSummaryForm model,HttpSession session,HttpServletRequest request){
		LOGGER.info("新增");   
		LOGGER.info("
捕获到前台传递过来的Model,名称为:提现申请时间" + model.getiGetCashTimeFrom()
				+"
提现申请时间至"+model.getiGetCashTimeTo()
				+"
提现状态"+model.getiStatus()
				+"
提现用户账号"+model.getsMobile()
				);  
		String sMobile=model.getsMobile();
		String iGetCashTimeFrom=model.getiGetCashTimeFrom();
		String iGetCashTimeTo=model.getiGetCashTimeTo();
		String iStatus=""+model.getiStatus();
		List<LoanSummary> list = loansService.findByCondition(sMobile, iGetCashTimeFrom, iGetCashTimeTo, iStatus);
		List<LoanSummaryForm> pages = new ArrayList<LoanSummaryForm>();
		BigDecimal decimal=new BigDecimal(0.00);
		for (LoanSummary entity : list) {
			LoanSummaryForm page=setForm(entity);
			decimal=decimal.add(page.getiMoney());
			pages.add(page);
			LOGGER.error("
提现流水号:"+page.getiAutoID()
					+"
提现用户账号:"+page.getsMobile()
					+"
账户余额(¥):"+page.getiAmount()
					+"
提现金额(¥):"+page.getiMoney()
					+"
提现银行:"+page.getsBankName()
					+"
银行卡号:"+page.getsBankCard()
					+"
提现申请时间:"+page.getiGetCashTime()
					+"
提现状态:"+page.getiStatus()
					+"
创建时间:"+page.getiCreateTime()
					+"
更新时间:"+page.getiUpdateTime());
		}

			     Map<String, Object> modelMap = new HashMap<String, Object>(3);  
			     modelMap.put("total", "1");  
			     modelMap.put("data", pages);  
			     modelMap.put("success", "true");  
			     modelMap.put("iTotal", decimal.toString());
				 session.setAttribute("loans", pages);
	    return modelMap;  
	}

	// ajax请求根据id查找实体数据value = "/findLoan")
	@RequestMapping(value = "/findLoan", method = RequestMethod.GET)
	@ResponseBody
	 public Map<String, Object> find(HttpSession session,HttpServletRequest request){
		int id= Integer.parseInt(request.getParameter("id"));
		  System.out.println("session set:"+id+"==");
		LoanSummary loan = loansService.findById(id);
		LOGGER.error("
提现流水号:"+loan.getiAutoID()
				+"
提现用户账号:"+loan.getsMobile()
				+"
账户余额(¥):"+loan.getiAmount()
				+"
提现金额(¥):"+loan.getiMoney()
				+"
提现银行:"+loan.getsBankName()
				+"
银行卡号:"+loan.getsBankCard()
				+"
提现申请时间:"+loan.getiGetCashTime()
				+"
提现状态:"+loan.getiStatus()
				+"
创建时间:"+loan.getiCreateTime()
				+"
更新时间:"+loan.getiUpdateTime());
	  session.setAttribute("ROOMNAME", id);
	 //springmvc 返回信息到ajax:
	  List<LoanSummary> list = new ArrayList<LoanSummary>();  
	  list.add(loan); 
		     Map<String, Object> modelMap = new HashMap<String, Object>(3);  
		     modelMap.put("total", "1");  
		     modelMap.put("data", list);  
		     modelMap.put("success", "true");  
		     return modelMap;  
	 }
<#setting classic_compatible=true>
<#assign base=springMacroRequestContext.getContextUrl("")>  
<#import "spring.ftl" as s />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>列表</title>
<script type="text/javascript" src="<@s.url '/res/jquery-1.11.3.js'/>"></script>
<script type="text/javascript" src="<@s.url '/res/jquery.json.min.js'/>"></script>
<script type="text/javascript">
    $.fn.serializeObject = function() {
        var o = {};
        var a = this.serializeArray();
        $.each(a, function() {
            if (o[this.name]) {
                if (!o[this.name].push) {
                    o[this.name] = [ o[this.name] ];
                }
                o[this.name].push(this.value || '');
            } else {
                o[this.name] = this.value || '';
            }
        });
        return o;
    };
</script>
<style type="text/css">
<!--
.STYLE1 {
	font-family: Arial, Helvetica, sans-serif,新宋体;
	font-weight: bold;
	font-size: 26px;
	color: #FF0000;
}

.STYLE13 {
	font-size: 22
}

.STYLE15 {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 20px;
}
-->
</style>
</head>

<body>
	<form action="list" method="post" id="inform">
		<table>
			<tr>
				<th>提现用户账号</th>
				<td><input type="text" name="sMobile" /></td>
			</tr>
			<tr>
				<th>提现申请时间起</th>
				<td><input type="text" name="iGetCashTimeFrom" /></td>
			</tr>
			<tr>
				<th>提现申请时间止</th>
				<td><input type="text" name="iGetCashTimeTo" /></td>
			</tr>
			<tr>
				<th>提现状态</th>
				<td><input type="text" name="iStatus" /></td>
			</tr>
			<tr>
				<td><input type="submit" value="查询"></td>
				<td><input type="button" onclick="setshow()" value="下载"></td>
			</tr>
		</table>
	</form>
	
		<#if loans?? & loans?size gt 0>
		  <p>共查询到items?size}个结果</p>
		<#else>
		  <p>没有查询到符合条件的结果,请更换条件再试试。</p>
		</#if>
	<table style="text-align: center;" width="100%" id="mytable">
		<tr>
			<td colspan="12" height="30" align="center"><span
				class="STYLE1">用户列表</span></td>
		</tr>
		<tr>
			<td width="100" height="30" align="center" valign="middle"><span
				class="STYLE15">提现流水号</span></td>
			<td width="100" height="30" align="center" valign="middle"><span
				class="STYLE15">提现用户账号</span></td>
			<td width="100" height="30" align="center" valign="middle"><span
				class="STYLE15">账户余额(¥)</span></td>
			<td width="100" height="30" align="center" valign="middle"><span
				class="STYLE15">提现金额(¥)</span></td>
			<td width="100" height="30" align="center" valign="middle"><span
				class="STYLE15">提现银行</span></td>
			<td width="100" height="30" align="center" valign="middle"><span
				class="STYLE15">银行卡号</span></td>
			<td width="100" height="30" align="center" valign="middle"><span
				class="STYLE15">提现申请时间</span></td>
			<td width="100" height="30" align="center" valign="middle"><span
				class="STYLE15">提现状态</span></td>
			<td width="100" height="30" align="center" valign="middle"><span
				class="STYLE15">创建时间</span></td>
			<td width="100" height="30" align="center" valign="middle"><span
				class="STYLE15">更新时间</span></td>
			<td colspan="2" width="100" height="30" align="center"
				valign="middle"><span class="STYLE15">功能</span></td>
		</tr>
		<div id="detail">
		
		</div>
	</table>
	<br />
	<div align="center" id="info">
		<a href="clear">注销</a>
	</div>
<script type="text/javascript">
	/**
	 * ajax-----提交的参数可以通过url提交,也可以用data:{}方式提交
	 */
	function setshow() {
		//$.ajax({type: "POST",url:"user/login",async:false,data: params});
		/** data : {
		 'room' : $("#roomid").find('option:selected').text(),
		 'roomid' :$("#roomid").val()
		},  
		$.each(params, function(i, field) {
		    $("#results").append(
		            field.name + ":" + field.value + "<br />");
		    if (isEmpty(field.value)) {
		        return;//验证是否为空
		    }
		});
		<#if loginStatus??>
		     loginStatus+='${loginStatus}';
		</#if>
		$("#loginForm").attr("action", "user/login");
		$("#loginForm").submit();
		if(status == "success" && !isEmpty(loginStatus) && loginStatus !="用户名或密码错误"){
		document.write(data);
		window.location.href="user/userList"; 
		}*/
		// params = $("#inform").serializeArray();
		var jsonObjInfo = $.toJSON($('#inform').serializeObject());
		alert("jsonObjInfo
"+jsonObjInfo);
        jQuery.ajax( {  
			type : "POST",
	        contentType : 'text/html',
			url : "list",
			data : jsonObjInfo,
			dataType : "json",
			success : function(data) {
				if (data && data.success == "true") {
					var num = 0;
					    var tableHtml ="";
					$.each(data.data, function(i, item) {
						tableHtml+=
						"<tr>"
						+"<td width='100' height='30' align='center' valign='middle'><span"
						+"class='STYLE15'>"+item.iAutoID+"</span></td>"
						+"<td width='100' height='30' align='center' valign='middle'><span"
						+"class='STYLE15'>"+item.sMobile+"</span></td>"
						+"<td width='100' height='30' align='center' valign='middle'><span"
						+"class='STYLE15'>"+item.iAmount+"</span></td>"
						+"<td width='100' height='30' align='center' valign='middle'><span"
						+"class='STYLE15'>"+item.iMoney+"</span></td>"
						+"<td width='100' height='30' align='center' valign='middle'><span"
						+"class='STYLE15'>"+item.sBankName+"</span></td>"
						+"<td width='100' height='30' align='center' valign='middle'><span"
						+"class='STYLE15'>"+item.sBankCard+"</span></td>"
						+"<td width='100' height='30' align='center' valign='middle'><span"
						+"class='STYLE15'>"+item.iGetCashTime+"</span></td>"
						+"<td width='100' height='30' align='center' valign='middle'><span"
						+"class='STYLE15'>"+item.iStatus+"</span></td>"
						+"<td width='100' height='30' align='center' valign='middle'><span"
						+"class='STYLE15'>"+item.iCreateTime+"</span></td>"
						+"<td width='100' height='30' align='center' valign='middle'><span"
						+"class='STYLE15'>"+item.iUpdateTime+"</span></td>"
                        +"<td width='50' height='30' align='center' valign='middle'>"
                        +"<a onclick='removeTr('"+item.iAutoID+"')>删除</a></td>"
                        +"<td width='50' height='30' align='center' valign='middle'>"
                        +"<a id='save' href=deleteUser?id='"+item.iAutoID+"'>保存</a></td>"
						+"<td width='50' height='30' align='center' valign='middle'>"
				           +"<a href=findUser?id="+item.iAutoID+">修改</a></td>"
						+"<td width='50' height='30' align='center' valign='middle'>"
						+"<a href=deleteUser?id="+item.iAutoID+">删除</a></td>"
						+"<td width='50' height='30' align='center' valign='middle'>"
						+"<a href=showItem("+item.iAutoID+")>详细信息</a></td>"
						+"</tr>";
						$('#info').append(
								"提现流水号:"+
								+"提现用户账号:"+item.sMobile
								+"账户余额(¥):"+item.iAmount
								+"提现金额(¥):"+item.iMoney+"
"
								+"提现银行:"+item.sBankName
								+"银行卡号:"+item.sBankCard
								+"提现申请时间:"+item.iGetCashTime+"
"
								+"提现状态:"+item.iStatus
								+"创建时间:"+item.iCreateTime
								+"更新时间:"+item.iUpdateTime+"
");
					});
					var elements = $("#mytable").children().length;  //表示id为“mytable”的标签下的子标签的个数
                    $("#mytable").children().eq(elements - 1).after(tableHtml); //在表头之后添加空白行
                    num++; 
        //$('#detail').html(tableHtml);
					alert("返回数据成功!");
				} else {
					alert("返回数据失败!");
				}
			},
			error : function() {
				alert("网络连接出错!");
			}
		});
	}
	 function showItem(id) {
		 $.ajax({
	            type : "GET",
	            url : "${base}/findLoan",
	            data :{'id' : id},  
	            dataType : "json",
	            success : function(data) {
	                if (data && data.success == "true") {
	                    $.each(data.data, function(i, item) {
	                        $('#info').append(
	                                "提现流水号:"+item.iAutoID
	                                +"提现用户账号:"+item.sMobile
	                                +"账户余额(¥):"+item.iAmount
	                                +"提现金额(¥):"+item.iMoney+"
"
	                                +"提现银行:"+item.sBankName
	                                +"银行卡号:"+item.sBankCard
	                                +"提现申请时间:"+item.iGetCashTime+"
"
	                                +"提现状态:"+item.iStatus
	                                +"创建时间:"+item.iCreateTime
	                                +"更新时间:"+item.iUpdateTime+"
");
	                    });
	                    alert("返回数据成功!");
	                } else {
	                    alert("返回数据失败!");
	                }
	            },
	            error : function() {
	                alert("网络连接出错!");
	            }
	        });
	}
	//非空判断 
	function isEmpty(strIn) {
		if (strIn === undefined) {
			return true;
		} else if (strIn == null) {
			return true;
		} else if (strIn == "") {
			return true;
		} else {
			return false;
		}
	}

	/* 	function check(obj) {
	 var content = obj.val();
	 var attribute = obj.attr("name");
	 if (attribute == "account" && !content) {//验证用户名是否为空  
	 $("#msg1").val("用户名不能为空!");
	 $("#account").focus();
	 } else {
	 $("#msg1").val("");
	 }
	 if (attribute == "passwd" && !content) {//验证密码是否为空   
	 $("#msg2").val("密码不能为空!");
	 $("#passwd").focus();
	 } else {
	 $("#msg2").val("");
	 }
	 } */
</script>
</body>
</html>
		<!-- json转换 ,springmvc 返回json格式必须加入 -->
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>1.9.13</version>
		</dependency>
		<dependency>
		    <groupId>com.fasterxml.jackson.core</groupId>
		    <artifactId>jackson-core</artifactId>
		    <version>2.7.3</version>
		</dependency>
		<dependency>
		    <groupId>com.fasterxml.jackson.core</groupId>
		    <artifactId>jackson-databind</artifactId>
		    <version>2.7.3</version>
		</dependency>
	<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射,请求映射 -->
    <context:annotation-config />
	<context:component-scan base-package="com.test.action" />
	<!-- 启动基于Spring MVC的注解功能,激活@Controller,将控制器与方法映射加入到容器中 -->
    <!--避免IE执行AJAX时,返回JSON出现下载文件 -->
<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
        <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>  
        <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"/>
        <bean id="mappingJacksonHttpMessageConverter"
	            class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
	        <property name="supportedMediaTypes">
	            <list>
	                <value>text/html;charset=UTF-8</value>
	            </list>
	        </property>
	    </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

在 Spring mvc3中,响应、接受 JSON都十分方便。
使用注解@ResponseBody可以将结果(一个包含字符串和JavaBean的Map),转换成JSON。
使用 @RequestBody 注解前台只需要向 Controller 提交一段符合格式的 JSON,Spring 会自动将其拼装成 bean。
Spring这个转换是靠org.codehaus.jackson这个组件来实现的,所以需要引入jackson-core-asl和org.codehaus.jackson两个jar包。

原文地址:https://www.cnblogs.com/asoks/p/5393767.html