0

ローカルの eXist DB を検索する Java を含む JSP ページがあります。<div>Java String の値をJSP のタグに渡したいと考えています。

結果コンテナーのタイトルがユーザーの検索内容を反映するように、これを行いたいと考えています。

例: 「を検索するとcontainerTitle9 件の一致が返されました」</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 インライン コード ( ) の使用を避ける必要があります<% ... &>。必要な場合もありますが、このようなコードは可読性が低くなる傾向があり、関心の分離に違反し、安全ではありません。

問題を解決するには、サーブレットで必要な値をリクエストに入れる必要があります。

    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 に答える