質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

57891閲覧

jspにおける、テキストボックスの値保持について

anna10

総合スコア24

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/04/14 12:11

jspにおける、値の保持についての質問です。
以下のjsp内テキストボックスに値を入れ、その値を元に検索する、というものです。

jspです

<form name = "form_serchList" method ="post" action ="BookSrv" > 書籍名検索 <br> 書籍名をどうぞ<input type = "text" name = "serchWord"> <input type = "hidden" name = "serch" value = "serch"> <input type="submit" value="検索"> </form>

servletです
// 一覧/検索画面の検索を押した際の処理
}else if("serch".equals(serch)){

// 検索したい言葉を取得
String serchWord = request.getParameter("serchWord");

// セレクト処理を呼ぶ
List<BookBean>list_ = bd.selectOrSerch(con_,serchWord);

// ジャンル一覧をリクエストスコープに格納
request.setAttribute("BOOK_LIST",list_);

address = LIST;

jspで入力された値をservletで受け取り処理を行う、というながれになります。

その際、例えば「ア」を入れて検索した場合ですが、検索結果を表示する際、テキストボックスに入力された「ア」は消えてしまいます。これを消すことなく、値を保持したままという言い方が正しいかどうかは分からないのですが、検索結果を表示した時、入力された「ア」をそのまま表示する、というやり方がありましたら教えて頂けないでしょうか?どうかよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

古典的には検索フォームのserchWordのvalueを送り返す形になります。

lang

1request.setAttribute("serchWord",serchWord);

lang

1<input type = "text" name = "serchWord" value="<%=serchWord%>">

ただ、このままではserchWordに「"」ダブルクォーテーションなどが送られるといろいろ悪さが出来るのでエスケープ処理が必要になります。

上記がごくごく古典的なJSPのスクリプトレット方式(<%~%>をスクリプトレットといいます)で、エスケープに際してはJSTL(JavaServer Pages Standard Tag Library)を利用して

lang

1<c:out value="${data}" />

のような出力の仕方をするというのが古典的な手法となります。

その後のトレンドとしてはEL式を用いて

lang

1<c:out value="${serchWord}"/>

という形になって……。

さらに近年のトレンドだとJSPを代替する技術を使おうという流れですね。
しかし、いきなりJSPやめましょうともいかないので、状況に合わせて方式を選んでみてください。

投稿2015/04/14 13:15

nagise

総合スコア87

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anna10

2015/04/15 13:25

回答誠にありがとう御座います。とても参考になりまして、無事に値を受け渡す事が出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問