actionController
param.put("measure_month_rule", reportService
.searchMeasureMonthRuleList(param));
return new ModelAndView(this.getMeasureMonthUrl(), param);
serviceImpl
// 数据库查询的数据
List measureMonth = reportDao.searchMeasureMonthRule(param);
// 页面需要展示的数据(数据进行分装)
List viewdataList = new ArrayList();
// 存放合并后指标值的Map
// 行转列将从数据库查询出一个指标多个月份多条值的记录合并为一条记录
for (int i = 0; i
LinkedHashMap measureMonthMap = new LinkedHashMap();
HashMap tempLinkedMap = (HashMap) measureMonth.get(i);
measureMonthMap.put(tempLinkedMap.get("WARNLIGHT") + ":",
tempLinkedMap.get("MEASUREMONTHRULE"));
viewdataList.add(measureMonthMap);
}
daoImpl
public List> searchMeasureMonthRule(Map param)
throws DaoException {
// fmt参数是数据显示格式样式
param.put("fmt", "([[:digit:]]+)[.]$");
return baseSupport.getList("searchMeasureMonthRule", param);
}
(param是参数map集合)
ibatis 的sql
Id = searchMeasureMonthRule 找到SQL执行SQL
SELECT CASE
WHEN P1.WARNLIGHT = '1' THEN
'绿灯'
WHEN P1.WARNLIGHT = '2' THEN
'黄灯'
WHEN P1.WARNLIGHT = '3' THEN
'红灯'
END WARNLIGHT,
REGEXP_REPLACE(TO_CHAR(P1.LEFTVALUE,
'fm999999999999999990.999999'),
#fmt#,
'\1') || P2.CODENAME ||
REGEXP_REPLACE(TO_CHAR(P1.RIGHTVALUE,
'fm999999999999999990.999999'),
#fmt#,
'\1') MEASUREMONTHRULE,
P1.WARNLIGHT
FROM F_IC_MEASURE_RULE P1, CD_IC_CODE P2
WHERE P1.MEASURECODE = #measurecode#
AND P2.CODETYPE = 'sectiontype'
AND P1.SECTIONTYPE = P2.CODE
ORDER BY P1.WARNLIGHT
]]>
数据封装格式
viewdataList
[measureMonthMap
{warnlight1:="MEASUREMONTHRULE",
Warnlight2:="MEASUREMONTHRULE2",
Warnlight2:="MEASUREMONTHRULE2"
}
]
param.put("measure_month_rule", reportService
.searchMeasureMonthRuleList(param));
将封装的数据放入到param集合中,页面${measure_month_rule }标识获取数据
Param{measure_month_rule="viewdataList"}
在jsp页面取出数据
${measure.key} ${measure.value} ;