gpt4 book ai didi

java - 使用日期类型列创建 Google 可视化数据表时出现 TypeMismatchException

转载 作者:行者123 更新时间:2023-11-30 08:03:34 34 4
gpt4 key购买 nike

好吧,经过几天的努力,我仍然无法完成这项工作。

这就是问题所在:我有一个 JSP,它托管一个 Google 图表,该图表将根据通过 Servlet 发送的数据构建。我正在使用 Google Visualization Java 库来实现此 servlet。

然后我有这个辅助函数,它获取存储在对象列表中的一些数据,构造一个数据表。以下是实现上述功能的类:

    public class DataTableGenerator {

public static DataTable generateDatatable(List<AccesoUrl> accesos) {

DataTable data = new DataTable();

ArrayList<ColumnDescription> cd = new ArrayList<>();
cd.add(new ColumnDescription("fecha", ValueType.DATE, "Fecha"));
cd.add(new ColumnDescription("navegador", ValueType.TEXT, "Navegador"));
cd.add(new ColumnDescription("ip", ValueType.TEXT, "IP"));
cd.add(new ColumnDescription("os", ValueType.TEXT, "Sistema Operativo"));

data.addColumns(cd);


try {

for(AccesoUrl acceso : accesos) {
GregorianCalendar calendario = new GregorianCalendar();
calendario.setTimeZone(TimeZone.getTimeZone("GMT"));

data.addRowFromValues(calendario, acceso.getNavegador(), acceso.getIp(), acceso.getSistemaoperativo());

}

} catch (TypeMismatchException e) {
System.out.println(e);
}

return data;
}
}

现在,这段代码应该可以工作,但是我在我的网络服务器上遇到了这个异常:

com.google.visualization.datasource.base.TypeMismatchException:值类型不匹配。 在 com.google.visualization.datasource.datatable.value.ValueType.createValue(来源未知) 在 com.google.visualization.datasource.datatable.DataTable.addRowFromValues(来源未知)

我现在已经无计可施了。我尝试了在 Google 上可以找到的所有变体,以便我的 JSP 在 Google Table 类型的图表上显示此数据。我尝试过将日期作为字符串发送,将日期作为格式化为 javascript 日期的字符串发送(即“Date(2015,4,4)”或“new Date(2015,4,4)”)。我也尝试使用 java 可视化库附带的 DateValue 对象来构造日期(即 new DateValue(2015,4,4))。我也尝试过传递 Java 日期。什么都不起作用,一切都会抛出 TypeMismatchException。

我确定是日期给我带来了麻烦,因为一旦我从数据表中删除日期列,一切都会正常运行,毫无异常(exception),并且我可以将数据显示在 Google 图表上。

那么有人可以告诉我在 Java 代码中到底需要做什么才能构建带有日期单元格的数据表吗?

最佳答案

即使我也遇到了同样的问题。但似乎 addRowFromValues() 不支持 DateValue() 。我选择了 addRow(TableRow)。没有看到任何错误。您可以使用如下所示的内容,示例代码:

DataTable data = new DataTable();
ArrayList<ColumnDescription> cd = new ArrayList<ColumnDescription>();
cd.add(new ColumnDescription("date", ValueType.DATE, "Executed Date"));
cd.add(new ColumnDescription("value", ValueType.NUMBER, "Duration "));
data.addColumns(cd);
TableRow tr = new TableRow();
tr.addCell(new DateValue(2015,7,7));
data.addRow(tr);

关于java - 使用日期类型列创建 Google 可视化数据表时出现 TypeMismatchException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31509857/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com