Java 处理JSP/Rserve网页上的空R数据帧

Java 处理JSP/Rserve网页上的空R数据帧,java,sql,r,jsp,rserve,Java,Sql,R,Jsp,Rserve,使用JSP网页和Rserve,我从MySQL数据库获取数据,并使用R数据框存储数据。这很好,情节也很完美 但是,如果db查询没有返回任何内容,那么dataframe将为空,并在尝试打印时抛出错误 我想做的是重定向到另一个JSP页面,该页面将显示错误,但我不确定如何执行此操作 我发现了这个R代码(它所做的纯粹是为了测试目的),它告诉我数据帧是否为空,但我如何才能包含Java(或其他东西)来重定向页面 if (nrow(df) != 0) { df } else {

使用JSP网页和Rserve,我从MySQL数据库获取数据,并使用R数据框存储数据。这很好,情节也很完美

但是,如果db查询没有返回任何内容,那么dataframe将为空,并在尝试打印时抛出错误

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

我发现了这个R代码(它所做的纯粹是为了测试目的),它告诉我数据帧是否为空,但我如何才能包含Java(或其他东西)来重定向页面

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

“failed”没有打印(我真的没想到会打印),但正如上面在else中所说的,我希望重定向。你有什么想法吗?

一个简单的
尝试{}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");
    }

看看这是否指向了正确的方向(并且()感谢这些链接,但我知道如何在jsp/java中重定向你不能简单地把java代码放在R代码里面,虽然关于重定向和转发的区别的链接在另一种情况下可能是无用的!
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");
    }