1

设置 - Tomcat 6.0.16 - MacBook

我有一个 JSP 页面,它调用一个单独的 Java 应用程序来搜索 Web 并返回内容。我希望在我的 JSP 页面上显示此内容。

我的 JSP 代码 - 调用下面的 JAVA

System.out.println("Test3");
Injector injector = Guice.createInjector(new GuiceInjector());
Run r = injector.getInstance(Run.class);
r.runSliceConsumer();   

我的 JAVA - 这可以工作并将我的内容打印到终端窗口。

if (sliceHits == null) {
    System.err.println("Timeout occurred while fetching slices");
    return;
}
if (!sliceHits.isEmpty()) {
    System.out.println("Found some slices Yuhuuuu ! :-) ");
    String sliceContent = createSlices(sliceHits);
    System.out.println("sliceContent:");
    System.out.println(sliceContent);
} 
else {
    System.out.println("No Slices were found for this query");
}

我的问题是我想在我的 JSP 网页中显示上面的内容,而不仅仅是终端窗口。我假设当以一种方式建立连接时,我的 JSP 调用我的 JAVA,我应该能够只显示结果但我有一些问题,我希望它只是我的语法。

我在 JSP 中的尝试

<div id="result-page-query" align='center'>
<%
    sliceContent = createSlices(sliceHits);
    out.println(sliceContent);
%>
</div>

我不确定我是否正确解释了这一点,但基本上我试图在我的网页上显示“sliceContent”的内容

谢谢

编辑:

嗨,正如 jddsantaella 和 Hardik Mishra 在下面建议的那样,我必须导入必要的包。然后我在这种情况下创建了一个对象“kContent”并执行了该方法。

解决方案类似于以下

<%

    Run kContent = injector.getInstance(Run.class);
    kContent.runSliceConsumer();
    out.println(kContent);
%>
4

2 回答 2

1

您不应该在 JSP 中使用 Java 代码,这是不推荐的。无论如何,您可以打印由执行以下操作的方法返回的值:

...
<%=myObjetct.myMethod(...)%>
...

在您的尝试中不清楚是什么createSlices。我想可能是

<%=r.runSliceConsumer()%>

假设您的runSliceConsumer方法正在返回一些东西

于 2012-05-29T16:40:34.390 回答
1

不建议在 JSP 中使用 JAVA 代码。JSP 主要用于演示。

其次,"org.apache.jasper.JasperException: Unable to compile class for JSP是运行时异常。当您运行 JSP 并且如果之前编译的 JSP 发生了变化,您的 Web 容器会在运行时编译 JSP。

此外,您应该在 jsp 的开头添加必要的导入语句

<%@ page import="java.util.List" %>

<%@ page import="yourpackage.slicer" %> 

最后,

<%
    sliceContent = createSlices(sliceHits);
    out.println(sliceContent);
%>

您可以从您的方法打印字符串返回值。只需检查调用方法,如myObj.myMethod()

于 2012-05-30T03:58:26.553 回答