0

使用 JSP 网页和 Rserve,我从 MySQL 数据库中获取数据并使用 R 数据框来存储数据。这工作正常并且情节完美。

但是,如果 db 查询不返回任何内容,则数据框为空,并且在尝试绘图时会引发错误。

我想要做的是重定向到另一个 JSP 页面,然后该页面将显示错误,但我不确定如何执行此操作。

我找到了这个 R 代码(它的作用纯粹是为了测试目的),它告诉我数据框是否为空,但是我怎样才能包含 Java(或其他东西)来重定向页面?

if (nrow(df) != 0) { 
      df
   } else {
      df <- "Empty"
      df
  }

编辑:我已经设法做到了这一点:

c.eval("if(nrow(df) != 0){ print(ggplot(df, aes(x=Date, y=UID))+geom_point(shape=1)) }"
+"else { print(\"Failed\") }");

“失败”不会打印(我真的没想到会打印),但正如上面在 else 中所说的那样,我想要一个重定向。关于这怎么可能的任何想法?

4

1 回答 1

0

一个简单try{} catch{}的解决了问题!不知道为什么我没有早点想到这一点。

所以而不是:

c.eval("if(nrow(df) != 0){ print(ggplot(df, aes(x=Date, y=UID))+geom_point(shape=1)) } else { print(\"Failed\") }");

我用过这个:

try {
        c.eval("print(ggplot(df, aes(x=Date, y=UID)) + geom_point(shape=1))"); // point graph
        System.out.print("Success");
    } catch (Exception e) {
        out.print(e.getMessage()); 
        System.out.print("Failed");
    }
于 2014-06-25T09:51:54.987 回答