在 JSP 中显示 Java 内容

Posted

技术标签:

【中文标题】在 JSP 中显示 Java 内容【英文标题】:Displaying Java content in JSP 【发布时间】:2012-06-03 21:51:24 【问题描述】:

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

【问题讨论】:

使用 您从尝试中看到了什么结果? @pb2q 你好。这给了我下面的 Tomcat 错误消息,错误就在该行“org.apache.jasper.JasperException:无法为 JSP 编译类:” @dystroy: out 在 JSP 中隐式可用,可用于像上面给出的代码一样打印。 【参考方案1】:

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

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

您的尝试不清楚createSlices 是什么。我觉得可以

<%=r.runSliceConsumer()%>

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

【讨论】:

嗨,jddsantaella,我想你在这里做点什么。生病玩它,看看我想出什么。 JSP 不是我的强项,所以我会尝试随机语法组合 您好 jddsantaella 只是想对您的帮助表示感谢。我已经根据您上面的建议发布了我的解决方案。【参考方案2】:

不建议在 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);
%>

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

【讨论】:

以上是关于在 JSP 中显示 Java 内容的主要内容,如果未能解决你的问题,请参考以下文章

六JSP技术

java jsp页面中<c:choose>中<c:when><c:otherwise>不显示内容

jsp中如何将数据库中的数据显示在页面中

为啥在jsp中提交数据后会显示的是问号

JSP

在 jsp 中显示休眠查询结果的最佳方法