Spring MVC + fastjson实现异步加载

功能:异步查询用户(User)详细信息,参数为id,返回一个User对象

js部分

$(".viewUser").on("click",function(){
		//将被绑定的元素(a)转换成jquery对象,可以使用jquery方法
		var obj = $(this);
		/*window.location.href=path+"/userController/viewUser/"+ obj.attr("userid");*/
		$.ajax({
			type:"GET",
			url:path+"/userController/viewUser",
			data:{userid:obj.attr("userid")},
			dataType:"json",
			success:function(result){
				if("failed"==result){
					alert("操作超时!");
				}else if("noData"==result){
					alert("没有数据!");
				}else{
					$("#v_userCode").val(result.userCode);
					$("#v_userName").val(result.userName);
					if(result.gender=="1"){
						$("#v_gender").val("女");
					}else if(result.gender=="2"){
						$("#v_gender").val("男");
					} 
					$("#v_phone").val(result.phone);
					$("#v_birthday").val(result.birthday);
					$("#v_address").val(result.address);
					$("#v_userRoleName").val(result.role.roleName);
					$("#v_creationDate").val(result.creationDate);
				}
			},
			error:function(data){
				alert("error!");
			}
		});
	});

Controller部分:

/**
	 * 显示用户信息
	 * 
	 * @param id
	 * @param model
	 * @return REST风格的URL
	 */
	// 如果没用配置消息转换器处理中文乱码加,produces={"application/json;charset=utf-8"}
	@RequestMapping(value = "viewUser", method = RequestMethod.GET,produces={"application/json;charset=utf-8"})
	@ResponseBody// 将此方法的返回结果直接写入HTTP ResponseBody(Response对象的body数据区)中,也就是响应流中
	public Object viewUser(@RequestParam String userid) {
		String cjson = "";
		User user = null;
		try {
			user = userService.findUserById(Integer.parseInt(userid));
			if (userid == null || userid.equals("")) {
				cjson = "noData";
			}
			cjson = JSON.toJSONString(user);
		} catch (NumberFormatException e) {
			e.printStackTrace();
			return "failed";
		} catch (Exception e) {
			e.printStackTrace();
			return "failed";
		}
		return user;
	}

实体类部分(如果需要时间格式的转换):

@JSONField(format="yyyy-MM-dd")
private Date birthday;
@JSONField(format="yyyy-MM-dd HH:mm:ss")
private Date creationDate;//创建时间

使用SpringMvc配置文件配置消息转换器处理中文乱码和时间格式(Controller层去掉转换json字符串部分,实体类根据需求使用注解,fastjson默认时间格式yyyy-MM-dd HH:mm:ss):

<!-- 配置<mvc:annotation-driven/>完成对@Controller和@RequestMapping等注解的支持 -->
  	<mvc:annotation-driven>
  		<!-- 配置消息转换器 -->
		<mvc:message-converters register-defaults="true">
		<!-- 解决AJAX返回json数据中文乱码 -->
			 <bean class="org.springframework.http.converter.StringHttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>application/json;charset=UTF-8</value>
					</list>
				</property>
			</bean> 
		<!-- 	解决 AJAX返回json数据日期格式 -->
			 <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>text/html;charset=UTF-8</value>
						<value>application/json</value>
					</list>
				</property>
				<property name="features">
					<list>
						<value>WriteDateUseDateFormat</value>
						<value>WriteMapNullValue</value>
						<value>QuoteFieldNames</value>
					</list>
				</property>
			</bean> 
		</mvc:message-converters>
	</mvc:annotation-driven> 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值