2

サーブレットからのデータをjspページに表示する必要があります。現時点で私はこれを持っています:

サーブレット:

Object data = text;
request.setAttribute("data", data);
request.getRequestDispatcher("index.jsp").forward(request, response);

JSP:

<p>result: ${data}</p>

JSPには、単純なテキストボックスと送信ボタンがあります。送信ボタンを押した瞬間、応答が毎回上書きされています。

検索するたびに結果が新しい行に表示されるようにするにはどうすればよいですか?以前の検索も見たいです...

どうもありがとう!

4

3 に答える 3

1

いくつかのオプションがあります。

  1. 現在の値をサーバーに送信し、検索を実行してそこに新しい結果を追加し、文字列全体をのJSPに返送して、Requestすべてを再度表示します。入力フィールドとしてではなく、に表示したい場合は、値を<input>タグでラップする必要があります。<input type="hidden">data<p>

    JSP:

    <input type="hidden" name="oldData" value="${data}"/>
    <p>result: ${data}</p>
    

    サーブレット:

    Object newData = text;
    Object oldData = request.getParameter("oldData");
    request.setAttribute("data", oldData + "<br/>" + newData);
    request.getRequestDispatcher("index.jsp").forward(request, response);
    
  2. のすべての値をdataセッションスコープに格納し、サーブレットから追加するだけです。JSPは、リクエストではなく、セッションスコープから値を出力する必要があります。この例では、値は一意の連結されたに格納されますStringdataの各値をなどのデータ構造に格納Listし、JSPでそれを反復処理して、セパレータがビューに残るようにする方がおそらく良いでしょう。

    JSP:

    <c:if test="${not empty sessionScope.data}">
        <p>result: ${sessionScope.data}</p>
    </c:if>
    

    サーブレット:

    Object newData = text;
    Object oldData = request.getSession().getAttribute("data");
    request.getSession().setAttribute("data", oldData + "<br/>" + newData);
    request.getRequestDispatcher("index.jsp").forward(request, response);
    
于 2012-09-14T10:50:40.487 に答える
0

1.サーブレットで単純なオブジェクトの代わりに配列を使用する

  1. 配列に新しい値を入力します:サーブレット

  2. 配列をトラバースし、新しい行として表示したい場所に各アイテムを表示します

于 2012-09-14T10:50:06.550 に答える
0

以前の結果を表示するには、データをRequestScopeに追加する必要があります。SessionScope

この例を参照してください:http://viralpatel.net/blogs/jsp-servlet-session-listener-tutorial-example-in-eclipse-tomcat/

でJavaコードを書くのはあまり良い習慣ではないJSPので、ロジックをサーブレットに移動することをお勧めします。ただし、この例では、必要なポイントについて説明します。

于 2012-09-14T10:50:37.660 に答える