2009-08-04 47 views
0

現在、HTMLページからサーブレットにフォームデータを送信して処理し、displayresults.jspページに転送/リダイレクトすることで結果を返すことができます。しかし、私はこの方法でフォーム提出を処理し、その結果を最初のページに返す方法があるのだろうかと思います。私が戻ってほしいものがフォームの下に現れるように。JSPの現在のページにフォーム処理結果を表示

最終的な考え方は、検索機能を一番上にしてから、検索結果を下に同じページに表示することです。

答えて

1

はい

  1. スティックサーブレット
  2. 内からのリクエストオブジェクトに結果が
  3. バック要求ページへ前進にサーブレットをゲット引き出すためにJSPの中にいくつかのコードを追加します。リクエストオブジェクトの結果とその表示

簡単な例についてはこれを参照http://www.tek-tips.com/viewthread.cfm?qid=1189624&page=11

あなたのユースケースは、検索結果から別の場所にジャンプして戻ってくることを意味し、セッションで検索結果を維持したい場合があります。

+0

ああ、これは本当に答えが単純すぎるように思えた時代の1つです。ありがとうございました –

2
<c:choose> 
<c:when test="${empty param.search}"> 
    <form method="post"><input type="text" name="search" /></form> 
</c:when> 
<c:otherwise> 
    <%-- show search result here. --%> 
</c:otherwise> 
</c:choose> 
+0

私は標準のcタグが好きです。投稿されたリンクの例は、90年代のスクリプトレットを使用していました。 – pjp

+0

そうです、スクリプトレットはとても面倒です! –

1

個人的には、私はほとんどの場合、「検索基準の収集」と「結果の表示」を同じサーブレットまたはJSPファイルに入れます。私は、この基本的な構造でそれらを書く:

if request data is present 
    collect search criteria from request object 
    check for errors 
else // i.e. first time in 
    fill search criteria with blanks or defaults 
end if 

display error messages // if any, of course 
display search criteria // either what we got from last cycle or defaults 

if request data was present 
    process request 
    display results 
end if 

エラーで、私は戻って、不正なデータを表示するには、ユーザが間違っていただけで何修正してみましょう、その後、サイクルするように設定していますので、私はこのような構造が好き。成功すると、彼は基準を調整して再実行するように設定されています。すべてが1か所にありますが、構造化されているので混乱することはありません。

サーブレットを使用することはほとんどありません。私は、トップレベルでJSPを使用し、単純ではない非表示コードを、単に呼び出す他のクラスに入れたいと思いますが、実装の詳細です。原則は、JSPの場合と同様にサーブレットと同様に機能します。

関連する問題