お世話になります。
2フレームの画面(画面A,画面B)にて
次の操作を行った場合、
「+」が入ったパラメタがうまく送信されません
(1)画面Aに検索条件を入力
(2)画面Aの「検索ボタン」を押下
(3)該当する情報を画面Bに表示
普通は、
「検索ボタン」→サーブレット→画面Bのjsp
という順番ですが
今回作っているものは
「検索ボタン」→画面Bのjspを呼び出す→画面Bのjsp内で、条件取得クラスを呼ぶ
という作りです。
条件取得クラスを呼ぶ前に、入力された条件を
取得したいのですが、
入力条件に「+」が入っていると、「 (スペース)」に
変換されます。。。
例:入力条件「123+45」→「123 45」
原因・対処がおわかりの方、よろしくお願い致します
---------------------------------------------
【画面A→画面Bの呼び出し】
parent.画面B.location.href
= '画面B.jsp?KEY=' + 入力値
(alert()でurlを見てみると→「画面B.jsp?KEY=123+45」)
【画面Bでの入力値取得】
String key = request.getParameter("KEY");
(System.out.printlnで見てみると「123 45」になる)
----------------------------
【開発環境】
WinXP
Weblogic8.1
JDK1.4.2
Ecripse2
No.3ベストアンサー
- 回答日時:
>入力条件に「+」が入っていると、「 (スペース)」に
変換されます。。。
遷移先の画面B.jspでrequest.getParameter("KEY");を呼んでいますが、
getParameterはURL(画面B.jsp?KEY=' + 入力値)をURLデコードしてから値を取り出すからです。
URLデコードすると+はスペースに置き換えられます。
つまり、デコードされる前提ならば、URLをエンコードして置かないといけません。
具体的には以下のような感じだと思います。
A.jsp
<%@page import="java.net.*"%>
<html>
<a href='b.jsp?key=<%= URLEncoder.encode("1+2") %>'>B.jsp</a>
</html>
B.jsp
<%@page import="java.net.*"%>
<html>
<%
out.println(request.getParameter("key"));
%>
</html>
potedoraさん、ご回答ありがとうございました。
ご指摘のとおり、URLEncoder.encode()を追加しましたら、うまくいきました!
具体的にソースまで書いていただき、
大変勉強になりました。
ありがとうございました!
No.2
- 回答日時:
検索に日本語とかはいるなら str = URLEncoder.encode(str) とした方がいいですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- Android(アンドロイド) スマホでパソコン操作の文字入力 2 2022/05/12 21:13
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- テレビ テレビで YouTube を見ていますが検索する時に文字入力が面倒です キーボードをつけるとか音声入 3 2022/05/24 11:53
- Chrome(クローム) 下に出てくるリストを消したい。 2 2022/06/17 16:47
- Outlook(アウトルック) PCで登録途中の画面から認証コードを確認する方法を教えてください。 3 2022/09/29 06:11
- Android(アンドロイド) スマホのゴーストタッチ?の様な症状について質問します。 スマホでInstagramを見ている時に そ 1 2023/02/14 19:18
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
プログラミングで例えばゲーム...
-
ASP.NET 画面遷移前の状態を保...
-
JAVAのセッション変数の上書き...
-
ウィンドウの制御について、質...
-
【swing】ボタンクリックにより...
-
Java-jspの画面入力値保持について
-
ポップアップでウィンドウを表...
-
PDFファイルを表示するサブ...
-
location.hrefでページ切替時の...
-
ServletからServletへの値渡し
-
遷移元を判定したい!
-
system("cls")について
-
HTMLのINPUTから画面表示
-
java初心者です。 画面Aで情報...
-
画面を隠す・消す方法を教えて...
-
変数名とDBカラム名の関係性に...
-
フロントエンジニアで一人前と...
-
SessionとViewStateについて
-
ボタンを押したあとに画像を表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C# ログイン画面からメイン画面...
-
C言語で今まで表示していた画面...
-
画面遷移を行わずに同一ページ...
-
Java-jspの画面入力値保持について
-
プログラミングで例えばゲーム...
-
フロントエンドフレームワーク...
-
ASP.NET 画面遷移前の状態を保...
-
遷移元を判定したい!
-
画像の縦横比固定の計算方法。
-
FormのsubmitでFormの内容がnull
-
画面を隠す・消す方法を教えて...
-
HTMLのINPUTから画面表示
-
登録後、呼び出し元ページに戻...
-
ボタンを押したあとに画像を表...
-
Javascriptのhistory.back()が...
-
ServletからServletへの値渡し
-
セッション切れでのリクエスト...
-
アドレスバーに引数を表示させ...
-
system("cls")について
おすすめ情報