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