Struts2 jquery チャート プラグイン 3.4.0 を使用しています。Action クラスから日付値を取得するために json を使用すると、空白のグラフが表示されます。単純なアクションを使用すると、同じコードが正常に機能します。これが私のjspコードです。
<s:url id="chartDataUrl" action="jsonChartData"/>
<sjc:chart
id="chartDate"
xaxisMode="time"
xaxisTimeformat="%m.%Y"
xaxisMin="%{minTime}"
xaxisMax="%{maxTime}"
xaxisColor="#666"
xaxisTickSize="[3, 'month']"
xaxisTickColor="#aaa"
xaxisPosition="top"
yaxisPosition="right"
yaxisTickSize="10"
cssStyle="width: 600px; height: 400px;"
>
<sjc:chartData
id="chartAjaxData1"
label="Map -Double, Double-"
href="%{chartDataUrl}" // when i remove json call then it works fine
list="dateFromMap"
reloadTopics="reloadMap"
lines="{show : true}"
/>
</sjc:chart>
struts.xml コード
<action name="jsonChartData"
class="com.ebhasin.fitnessbliss.actions.GraphsAction">
<result type="json" name="success"></result>
</action>
アクション クラス コード:
public class GraphsAction extends ActionSupport {
private String currentDate;
private Map<Date, Float> dateFromMap;
HomeService homeService = new HomeService();
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
@Override
public String execute() {
System.out.println("execute");
float weight;
Date date = new Date();
Map session = ActionContext.getContext().getSession();
Integer loginId = (Integer) session.get("loginId");
if (loginId != null) {
dateFromMap = new TreeMap<Date, Float>();
List list = homeService.getWeightGraphData(loginId);
if (list.size() > 0) {
Iterator itr = list.iterator();
while (itr.hasNext()) {
UserStats userStats = (UserStats) itr.next();
weight = userStats.getWeight();
date = userStats.getCreatedDate();
//currentDate = formatter.format(date);
dateFromMap.put(date, weight);
}
} else {
// dateFromMap.put("my",2F );
}
} else {
}
return SUCCESS;
}
public String getCurrentDate() {
return currentDate;
}
public void setCurrentDate(String currentDate) {
this.currentDate = currentDate;
}
public Map<Date, Float> getDateFromMap() {
return dateFromMap;
}
public void setDateFromMap(Map<Date, Float> dateFromMap) {
this.dateFromMap = dateFromMap;
}
}