0

我有一个使用 Java 搜索本地 eXist DB 的 JSP 页面。我希望将 Java 字符串的值传递给<div>JSP 中的标记。

我想这样做,以便我的结果容器的标题反映用户搜索的内容。

例如“您的搜索containerTitle返回了 9 个匹配项”</p>

我的代码

<div class='concept-container result-container'>
<ul class="menu menu-style">
 <li>
    <a href="javascript:;">Concept Bar</a>
    <ul>
        <div id="title">Concept Title</div>
<%

    String containerTitle = userSearchQuery;

我希望将概念栏或概念标题更改为 containerTitle。(存储用户搜索过的字符串。

任何帮助都非常受欢迎。

4

2 回答 2

2

在HTTPServletRequest上使用 setAttribute 方法。然后,您可以request.getAttribute在嵌入在您的 JSP 页面上的 Java 代码中说,或者使用来读取在 JSP 表达式语言中request.foo调用的属性。foo

如果您只想打印 的值containerTitleout.print(containerTitle)可以,但是带有嵌入式 Java 打印代码的 JSP 相当难看...

于 2012-09-11T12:02:33.200 回答
1

首先,您应该避免使用 Java 内联代码 ( <% ... &>)。有时这是必要的,但这样的代码往往可读性较差,违反关注点分离且不安全。

为了解决您的问题,您的 servlet 应将所需的值放入请求中:

    request.setAttribute("containerTitle", "Your search for Foo Bar has returned 9 matches”);

在您的 JSP 中,我建议使用 JSTL 来输出值:

    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
    <div>
            <c:out value="${containerTitle}"/>
    </div>

您不仅限于将字符串传递给setAttribute. 您可以创建一个包含信息的简单对象并使用“点语言”来访问对象的属性:

    <div>
            <c:out value="${searchResult.title}"/>
    </div>

我建议阅读有关 JSP 编程的好教程,以深入了解该主题。

于 2012-09-11T12:07:18.850 回答