故障描述
在使用BJUI框架进行前后端数据查询交互并回显信息时出现问题。
原本是正常的弹窗提示信息,却在浏览器页面出现了一串JSON字符串
场景代码
jsp页面:
<form id="refundForm" action="${ctx}/bus/merchantGroupOrderAction/doRefOrderAudit" class="ajaxForm" data-toggle="validate">
<input type="hidden" name="id" id="subOrderId" value="${userOrder.id}">
</form>
js代码:
<script type="text/javascript">
function refundHandle(){
$("#refundForm").submit();
}
</script>
跳转到后台action:
@ResponseBody
@RequestMapping("/doRefOrderAudit")
public Map<String,Object> doRefOrderAudit(Integer id){
Map<String,Object> dataResult = null;
Map<String, Object> jsonResult = null;
String msg = "";
try {
ShiroUser currentUser = (ShiroUser) SecurityUtils.getSubject().getPrincipal();
dataResult = goodsorderService.updateGoodsOneOrderRefHandel(id);
String tabid = tabid(ModelAndViewConstants.MERCHANT_GROUP_ORDER_SYS_ID);
Integer statusCode = 200;
msg = dataResult.get("msg").toString();
System.out.println(msg);
jsonResult = JsonResult.jsonReturn(statusCode.intValue(), msg, tabid);
LogService.getInstance(this).debug("订单退款处理完成");
return jsonResult;
} catch (Exception e) {
msg = "保订单退款处理失败"+e.getMessage();
jsonResult = JsonResult.jsonReturnErr(msg);
LogService.getInstance(this).debug("订单退款处理失败!"+e.getMessage());
}
return jsonResult;
}
解决
在action代码中,将:
jsonResult = JsonResult.jsonReturn(statusCode.intValue(), msg, tabid);
的initValue()去掉即可,但是在有些情况下,加上initValue()也是可以的。
但是这种情况下就是不行,去掉就可以了。