在JSP中显示Java内容

时间:2012-05-29 16:28:57

标签: java jsp

设置 - 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);
%>

2 个答案:

答案 0 :(得分:1)

您不应该在JSP中使用Java代码,这是不可取的。无论如何,您可以打印方法返回的值,如下所示:

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

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

<%=r.runSliceConsumer()%>

假设您的runSliceConsumer方法正在返回

答案 1 :(得分:1)

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

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

此外,您应该在jsp

的开头add the necessary import语句
<%@ page import="java.util.List" %>

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

最后,

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

您可以从方法中打印String返回值。只需检查调用方法myObj.myMethod()

即可