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

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

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

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Q&A

解決済

1回答

1246閲覧

サーブレットにてプルダウン時の表示非表示がうまく反映されていない

退会済みユーザー

退会済みユーザー

総合スコア0

JSP

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

0グッド

0クリップ

投稿2021/02/13 09:13

サーブレット初心者です。
基本的なことかもしれませんが詰まってます。

select.jspからresult.jspへ画面遷移する際、そこで選択した内容をresult.jspで反映させようとしています。
しかし、現状のresult.jspではプルダウンで選択したものが表示されません。
(select.jspではjavaでsetAttributeして値をresult.jspに返すような処理をしています)

select.jspの画面としては以下の通りです。この画面で入力、選択を行い、result.jspに内容を返します。

select.jsp↓
A (入力フォーム)
B (入力フォーム)
C (プルダウン)
D (入力フォーム)  ・・・※Cのプルダウンで「自由入力」を選択すると非表示→表示となる

該当のソースコード

result.jsp(jspのbodyを記載)

...略 <% String a = request.getAttribute("A1"); String b = request.getAttribute("B1"); String c_select = request.getAttribute("c1_select"); String d = request.getAttribute("D1"); %> ...略 <body> <div align="center">A<%=a%></div> <div align="center">B<%=b%></div> <div id="C" align="center">C<%=c_select%></div> <div id="D" align="center">D<%=d%></div> <script> if (D == null) { document.getElementById("D").style.display = "none"; document.getElementById("C").style.display = "block"; } else { document.getElementById("D").style.display = "block"; document.getElementById("C").style.display = "none"; } </script> <略> </body>

試したこと

入力フォームにはすべてtest、プルダウンには自由入力以外を選択した場合、
A test
B test
D

入力フォームにはすべてtest、プルダウンには自由入力を選択して入力フォームにtestと入力した場合、
A test
B test
D test

と表示されました。

想定していることは
「入力フォームにはすべてtest、プルダウンには自由入力以外を選択した場合、」
にきちんとCも表示され、Dは非表示となることです。↓の通り
A test
B test
C (選択内容)

こちらはD(入力フォーム)に値がなければ表示非表示を行えばいいと思ってましたが、
動作確認するとどうやらifが機能していないように見えます。

試しに<script>以下の値を消したら、問題なくすべて表示されていました。
値はきちんとsetできているのでそこは問題ないと思いますが、if文がやはりおかしいのでしょうか・・・?

補足情報(FW/ツールのバージョンなど)

Eclipse IDE v4.14.0

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

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

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

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

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

K_3578

2021/02/16 03:09

とりあえず、select.jspのコードも追記して頂けると有難いですね。
K_3578

2021/02/27 05:21

無言退会ですか。これでは誰の役にも立ちません。
guest

回答1

0

ベストアンサー

お騒がせいたしましたが自己解決しました

投稿2021/02/26 01:22

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

K_3578

2021/02/26 01:27

解決方法が何一つ書かれていないので低評価しています。 解決したのならば解決方法を明確に書いて自己解決にしてください。 これでは後から見られた方には何の参考にもなりませんので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問