Java springmvc3和googledatatable

Java springmvc3和googledatatable,java,spring-mvc,datatable,datasource,google-visualization,Java,Spring Mvc,Datatable,Datasource,Google Visualization,我是google.visualization.datasource的新手,我想知道是否有一个简单的示例,可以使用帮助器类创建datatable并将其返回给客户端,但不使用查询和DataSourceServlet??因为我已经通过SpringMVC控制器实现了我的http请求 我试图实现以下示例: 这是我的密码: @Controller public class DBcontroller { private SimpleDateFormat formater = new SimpleDat

我是google.visualization.datasource的新手,我想知道是否有一个简单的示例,可以使用帮助器类创建datatable并将其返回给客户端,但不使用查询和DataSourceServlet??因为我已经通过SpringMVC控制器实现了我的http请求

我试图实现以下示例:

这是我的密码:

    @Controller
public class DBcontroller {
private SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


@SuppressWarnings({ "rawtypes", "unchecked" })
@RequestMapping(value = "/getHistoricalData", method = {RequestMethod.POST,RequestMethod.GET})
public @ResponseBody DataTable setLampsRequest(@RequestParam String Lampid
        , @RequestParam String StartDate, @RequestParam String EndDate) throws ParseException{

    //converting time values to long
    Long start = formater.parse(StartDate).getTime();
    Long end = formater.parse(EndDate).getTime();

     // Create a data table,
    DataTable data = new DataTable();
    ArrayList cd = new ArrayList();
    cd.add(new ColumnDescription("name", ValueType.TEXT, "Animal name"));
    cd.add(new ColumnDescription("link", ValueType.TEXT, "Link to wikipedia"));
    cd.add(new ColumnDescription("population", ValueType.NUMBER, "Population size"));
    cd.add(new ColumnDescription("vegeterian", ValueType.BOOLEAN, "Vegetarian?"));

    data.addColumns(cd);

    // Fill the data table.
    try {
      data.addRowFromValues("Aye-aye", "http://en.wikipedia.org/wiki/Aye-aye", 100, true);
      data.addRowFromValues("Sloth", "http://en.wikipedia.org/wiki/Sloth", 300, true);
      data.addRowFromValues("Leopard", "http://en.wikipedia.org/wiki/Leopard", 50, false);
      data.addRowFromValues("Tiger", "http://en.wikipedia.org/wiki/Tiger", 80, false);
    } catch (TypeMismatchException e) {
      System.out.println("Invalid type!");
    }


    return data;
 }  

 }

提前感谢您的帮助,谢谢

您可以使用
JsonRenderer
将数据表写入JSON:

@RequestMapping(value=“/getHistoricalData”,method={RequestMethod.POST,RequestMethod.GET})
public@ResponseBody无效设置灯请求(
@RequestParam字符串Lampid,
@RequestParam字符串开始日期,
@RequestParam字符串结束日期,
写入器输出,
HttpServletRequest(请求){
//将时间值转换为长时间值
Long start=formatter.parse(StartDate.getTime();
Long end=formatter.parse(EndDate.getTime();
//创建一个数据表,
DataTable数据=新DataTable();
ArrayList cd=新的ArrayList();
cd.add(新列描述(“名称”,ValueType.TEXT,“动物名称”);
添加(新的ColumnDescription(“link”,ValueType.TEXT,“链接到维基百科”);
cd.add(新列描述(“总体”,ValueType.NUMBER,“总体大小”);
添加(新的列描述(“素食者”,ValueType.BOOLEAN,“素食者?”);
数据。添加列(cd);
//填写数据表。
试一试{
data.addRowFromValues(“是的,是的,”http://en.wikipedia.org/wiki/Aye-aye“,100,对);
data.addRowFromValues(“Sloth”http://en.wikipedia.org/wiki/Sloth“,300,对);
data.addRowFromValues(“Leopard”http://en.wikipedia.org/wiki/Leopard“,50,假);
data.addRowFromValues(“Tiger”http://en.wikipedia.org/wiki/Tiger“,80,假);
}捕获(类型不匹配异常e){
System.out.println(“无效类型!”);
}
PrintWriter=新的PrintWriter(输出);
println(JsonRenderer.renderDataTable(data,true,false,false));
writer.close();
}

您可以使用
JsonRenderer
将数据表写入JSON:

@RequestMapping(value=“/getHistoricalData”,method={RequestMethod.POST,RequestMethod.GET})
public@ResponseBody无效设置灯请求(
@RequestParam字符串Lampid,
@RequestParam字符串开始日期,
@RequestParam字符串结束日期,
写入器输出,
HttpServletRequest(请求){
//将时间值转换为长时间值
Long start=formatter.parse(StartDate.getTime();
Long end=formatter.parse(EndDate.getTime();
//创建一个数据表,
DataTable数据=新DataTable();
ArrayList cd=新的ArrayList();
cd.add(新列描述(“名称”,ValueType.TEXT,“动物名称”);
添加(新的ColumnDescription(“link”,ValueType.TEXT,“链接到维基百科”);
cd.add(新列描述(“总体”,ValueType.NUMBER,“总体大小”);
添加(新的列描述(“素食者”,ValueType.BOOLEAN,“素食者?”);
数据。添加列(cd);
//填写数据表。
试一试{
data.addRowFromValues(“是的,是的,”http://en.wikipedia.org/wiki/Aye-aye“,100,对);
data.addRowFromValues(“Sloth”http://en.wikipedia.org/wiki/Sloth“,300,对);
data.addRowFromValues(“Leopard”http://en.wikipedia.org/wiki/Leopard“,50,假);
data.addRowFromValues(“Tiger”http://en.wikipedia.org/wiki/Tiger“,80,假);
}捕获(类型不匹配异常e){
System.out.println(“无效类型!”);
}
PrintWriter=新的PrintWriter(输出);
println(JsonRenderer.renderDataTable(data,true,false,false));
writer.close();
}

您遇到了什么问题?你试过什么?单独创建一个dataTable没有什么错,只要最终的格式可以通过Google Visualization作为JS对象读取。因此,如果它是一个合适的对象,那么使用它作为数据源应该不会导致创建图表的问题。你的问题到底出在哪里?@jmac我试图通过google.gson转换为JSON对象,当我在浏览器中收到它并从中生成一个google.Visualization.Datatable并尝试绘制它时,我在控制台中得到了这个错误:
Uncaught TypeError:object#没有方法“getNumberOfColumns”)
你遇到了什么问题?你试过什么?单独创建一个dataTable没有什么错,只要最终的格式可以通过Google Visualization作为JS对象读取。因此,如果它是一个合适的对象,那么使用它作为数据源应该不会导致创建图表的问题。你的问题到底出在哪里?@jmac当我在浏览器中接收到JSON对象时,我试图通过google.gson将其转换为JSON对象,并从中生成一个google.Visualization.Datatable并尝试绘制它,我在控制台中得到了以下错误:
Uncaught TypeError:object\35;没有方法“getNumberOfColumns”)