後端代碼
實體
package com.ctrip.train.tieyouflightpriceanalysis.entity;
/**
* desc : 優惠券信息
* create_user : cheng
* create_date : 2018/11/21 14:33
*/
public class CouponInfo {
/**
* 策略ID
*/
private String activityId;
/**
* 描述信息
*/
private String desc;
/**
* desc : 重寫toString, 這個方法一定要重寫, 重寫的內容就是json格式化出來的內容
* create_user : cheng
* create_date : 2018/11/21 16:06
*/
@Override
public String toString() {
return activityId + ":"+ desc;
}
public String getActivityId() {
return activityId;
}
public void setActivityId(String activityId) {
this.activityId = activityId;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
controller
/**
* desc : 跳轉優惠券風險控制報表頁面
* create_user : cheng
* create_date : 2018/8/14 16:29
*/
@RequestMapping(value = "/_riskControl")
public ModelAndView toRiskControl(ModelAndView mv) throws Exception {
mv.setViewName("coupon/riskControl");
// 優惠券策略ID list(依據class的toString方法生成json)
// 其中的getCouponList方法 : List<CouponInfo> getCouponList() throws Exception;
mv.addObject("couponList", riskControlBiz.getCouponList());
return mv;
}
前端jsp頁面獲取
<input id="couponList" type="hidden" value="${couponList}">
js處理數據
/**
* 填充優惠券策略ID
*/
function fillCouponEnum() {
// 獲取優惠券策略ID, 截取前後[]
var couponStr = $("#couponList").val();
// 輸出結果 : [63336:新客券, 63341:63341, 81635:81635, 65145:65145, 81636:81636, 65157:65157, 75125:75125, 81639:81639, 71653:71653, 65152:65152, 81640:81640, 73039:73039, 67012:67012, 67928:67928, 75126:75126, 73040:73040, 78657:78657, 65148:65148, 81641:81641, 67015:67015, 71657:71657, 65153:65153, 71658:71658, 76608:76608, 77151:77151, 67929:67929]
// 其實就是 activityId + ":"+ desc, 也就是實體類的toString方法
console.log(couponStr);
couponStr = couponStr.substring(1, couponStr.length - 1);
// str -> array
var couponList = couponStr.split(",");
var selectHtml = "<optgroup>";
selectHtml += "<option data-subtext='全部' value=' '>全部</option>";
for (var i = 0; i < couponList.length; i++) {
var couponArr = couponList[i].split(":");
selectHtml += "<option data-subtext='" + couponArr[1] + "' value='" + couponArr[0] + "'>" + couponArr[0] + "</option>";
}
selectHtml += "</optgroup>";
$("#couponEnum").append(selectHtml);
}
特別注意
我們註釋掉實體類的toString方法後, 上述console.log(couponStr)打印結果爲
[com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@c6c31f9, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@61e7aa09, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@4b55c1eb, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@4ef4b604, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@23fab5da, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@7f91e44e, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@1a2e38ce, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@7101e919, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@7a3d686, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@7760e1a8, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@1ce35fc2, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@62d42466, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@7b5ac95c, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@bc70a3e, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@d5c49cb, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@4ee8ab12, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@63559bba, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@5070eb14, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@3f8de2c0, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@34367e18, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@7bf1ab6f, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@2c0ed74e, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@7c45abed, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@7b84ccc3, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@d58aa0f, com.ctrip.train.tieyouflightpriceanalysis.entity.CouponInfo@57b6a84d]