open flash char 使用心得(参数篇)

最近由于项目需要,一直在使用open flash char(以下简称ofc)。感觉这玩意儿展现出的效果确实不错。不过在功能上略显不足。真正对于复杂的报表展示,使用起来还是比较繁琐。(个人认为,如果有更好的使用方式请告知我:[email protected])。

以下是我在使用过程中遇到的问题,以及解决方式。

1.问题一:多个参数传递。对于ofc,默认只支持一个参数传递,即

              data-file":"$homeModule/alipay/monitorAlipayTotalAmountMonthArea.do?catalog=1&id=3,只认?号后面的内容为参数,对于&符号不进行参数分割,所获取的参数值为:1&id=3。

   解决方式:如果是多个参数,对?号后面的参数使用;号进行分割,在后台取参的时候用了如下方法:

/**
  * @param flashParamStr
  *            值:asdf;dataForm=sss;dataTo=sccc中间以;分割
  * @param paramName
  *            第一个参数名
  * @return Map 中key为参数名dataForm ,value为参数值sss 对open flash char
  *         的参数做处理flashParamStr值:asdf;dataForm=sss;dataTo=sccc中间以;分割
  */
 public static Map<String, String> flashParamProcess(String paramName,
   String flashParamStr) {
  String[] flashParamArray = flashParamStr
    .split(ReportConstant.FLASH_PARAM_SPLIT_CHAR);
  Map<String, String> flashParamMap = new HashMap<String, String>();
  for (int i = 0; i < flashParamArray.length; i++) {
   if (i == 0) {
    flashParamMap.put(paramName, flashParamArray[i]);
   } else {
    flashParamMap.put(flashParamArray[i].substring(0,
      flashParamArray[i].indexOf("=")), flashParamArray[i]
      .substring(flashParamArray[i].indexOf("=") + 1,
        flashParamArray[i].length()));
   }
  }
  return flashParamMap;
 }

取参数的时候:如下(假如url: monitorAlipayTotalAmountMonthArea.do?appId=1;serverId=3)

String appIdStr=rundata.getParameters().getString("appId");
  Map<String, String> paramMap=ReportUtil.flashParamProcess("appId", appIdStr);//对open falsh char参数做处理
//  String appId=paramMap.get("appId");
  String serverId=paramMap.get("serverId");

 

 

你可能感兴趣的:(String,Flash,url,报表)