spring mvc 应用中用path variable传递小数丢失的解决方法

来源:互联网 发布:淘宝2017营业额 编辑:程序博客网 时间:2024/06/08 02:06
@AuthPassport@RequestMapping("/OMS315/appr/{qid}/{pid}/{status}/{sn}/{price}")public @ResponseBody String apprBuy(HttpServletRequest request, HttpServletResponse response,@PathVariable("qid") String pvQuotedID, @PathVariable("pid") Long pvProdID, @PathVariable("sn") String pvSN,@PathVariable("price") Double pvPrice, @PathVariable("status") Integer pvStatus) {JSONData lvRet = new JSONData();try {Map<String,Object> lvParams=getParamsFromRequest(request);String lvRmk=(String) lvParams.get("rmk");String lvSup=(String) lvParams.get("sup");ModifyDataException lvErr = module.approveBuy(pvQuotedID, pvProdID, pvSN, pvPrice, pvStatus,lvSup,lvRmk,getCurrLogin(request), getLocale(request));if (lvErr != null) {throw lvErr;}// return JsonUtils.jsonFromObject(lvRet);} catch (Exception e) {BaseModule.jsonDataFillErrMsg(lvRet, e);}return JsonUtils.jsonFromObject(lvRet);}

上述代码中,如果price为小于1的小数,如0.15,则传递给pvPrice的值为0, 查资料, 必须对{price}点位符进行如下修饰:{price:.+} 


@AuthPassport@RequestMapping("/OMS315/appr/{qid}/{pid}/{status}/{sn}/{price:.+}")public @ResponseBody String apprBuy(HttpServletRequest request, HttpServletResponse response,@PathVariable("qid") String pvQuotedID, @PathVariable("pid") Long pvProdID, @PathVariable("sn") String pvSN,@PathVariable("price") Double pvPrice, @PathVariable("status") Integer pvStatus) {JSONData lvRet = new JSONData();try {Map<String,Object> lvParams=getParamsFromRequest(request);String lvRmk=(String) lvParams.get("rmk");String lvSup=(String) lvParams.get("sup");ModifyDataException lvErr = module.approveBuy(pvQuotedID, pvProdID, pvSN, pvPrice, pvStatus,lvSup,lvRmk,getCurrLogin(request), getLocale(request));if (lvErr != null) {throw lvErr;}// return JsonUtils.jsonFromObject(lvRet);} catch (Exception e) {BaseModule.jsonDataFillErrMsg(lvRet, e);}return JsonUtils.jsonFromObject(lvRet);}


0 0
原创粉丝点击