做的工作是后台通过map传值到jsp动态赋值,主要折腾了两个问题:1,取map里数据结构为list的数据;2前端通过时间段查询时,需要将搜索里的时间传到后台调用。
第一个问题的解决方法是使用<c:forEach>这个标签即可以在js里使用也可在html里使用,具体代码如下:
<c:forEach var="bean" varStatus="s" items="${allDateMap }">
option.series['${s.count-1}'].data[0] = '${bean.COUNTALL }';
//alert(option.series['${s.count-1}'].data[0]);
//console.log(value);
</c:forEach>
第二个问题解决方,使用了公司的query插件,不清楚原理,直接上源码
jsp代码
<s:form action="/kitchen/corpConfig/cctjEchart.do" method="post" modelAttribute="query">
<table>
<tr>
<th>抽取日期起:</th>
<td>
<div class="inputDiv">
<s:input path="search['startTime']" cssClass="Wdate" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'})" name="startTime"/>
</div>
</td>
<th>抽取日期止:</th>
<td>
<div class="inputDiv">
<s:input path="search['endTime']" cssClass="Wdate" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'})" name="endTime"/>
</div>
</td>
<td>
<input type="submit" value=" 搜 索 " class="searchAreaSubBtn" />
</td>
</tr>
</table>
</s:form>
后台代码
public String cctjEchart(UserInfo user, Model model,PageQuery query){
if(null == query.getSearch().get("startTime") || "".equals(query.getSearch().get("startTime"))){
query.getSearch().put("startTime", UncDate.shortDate(UncDate.addYear(new Date(), -1)));
}
if(null == query.getSearch().get("endTime") || "".equals(query.getSearch().get("endTime"))){
query.getSearch().put("endTime", UncDate.shortDate(UncDate.addDay(new Date(), 1)));
}
List<Map<String, Object>> allDateMap = idataFatchNameViewService.getSelect(query.getSearch().get("startTime"),query.getSearch().get("endTime"));