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

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

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

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

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

1回答

1139閲覧

このif〜else文はifでなくても、elseになりません。どのようにすればいいでしょうか?

edoooooo

総合スコア476

JSP

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

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2016/04/25 05:41

java

1<%if(mutterList!=null){ %> 2<% for(Mutter mutter:mutterList){ %> 3<%if(mutter.getUserName().length()!=0 && mutter.getUserPass().length()!=0){ %> 4<p>ログインに成功しました。</p> 5<p>ようこそ<%=loginUser.getName() %>さん</p> 6<%} %> 7<%}}else{ %> 8<p>ログインに失敗しました。</p> 9<a href="/example24/">TOPへ</a> 10<%}%>

修正した、jspでも、同じ結果となります。

java

1<%if(mutterList==null){ %> 2<p>ログインに失敗しました。</p> 3<a href="/example24/">TOPへ</a> 4<%} %> 5<% for(Mutter mutter:mutterList){ %> 6<%if(mutter.getUserName().length()!=0 && mutter.getUserPass().length()!=0){ %> 7<p>ログインに成功しました。</p> 8<p>ようこそ<%=loginUser.getName() %>さん</p> 9<%}else{ %> 10<p>ログインに失敗しました。</p> 11<a href="/example24/">TOPへ</a> 12<%}}%> 13

どうぞよろしくお願いします。

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

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

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

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

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

kaputaros

2016/04/25 06:05

あちこちに同じものを質問するのはやめたほうがいいですよ。 回答してくれる方々の混乱を招きます。
edoooooo

2016/04/25 06:28 編集

申し訳ありませんでした。今後、気おつけます
guest

回答1

0

ベストアンサー

ログインできない時に「ログインに失敗しました」と表示されないという事でしょうか?
mutterListがnullじゃないけどその中にgetUserName().length()が0だったりgetUserPass().length()が0な物しかない時には「ログインに成功しました」も「ログインに失敗しました」も表示されませんがそういう状態では無いのでしょうか?
mutterListの中身を試しに全部表示させてみるとかして確認してみるとか、if(mutterList!=null)とfor(Mutter...の間に確認用の文字表示を追加してみるとかして追跡してみるのはどうですか?

投稿2016/04/25 05:50

HiroshiWatanabe

総合スコア2160

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

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

edoooooo

2016/04/25 06:16

そうです。 ログインに、成功した時だけ、成功しました。と表示されるのですが、失敗時には、何も表示されません。 mutterListの中身を表示すべく <%if(mutterList==null){ %> <p>ログインに失敗しました。</p> <a href="/example24/">TOPへ</a> <%} %> <% for(Mutter mutter:mutterList){ %> <%if(mutter.getUserName().length()!=0 && mutter.getUserPass().length()!=0){ %> <p>ログインに成功しました。</p> <%= mutter.getUserName()%> <%= mutter.getUserPass()%> <p>ようこそ<%=loginUser.getName() %>さん</p> <%}else{ %> <p>ログインに失敗しました。</p> <%= mutter.getUserName()%> <%= mutter.getUserPass()%> <a href="/example24/">TOPへ</a> <%}}%> このようにしたところ、成功時は、表示されるのですが、失敗時には失敗しましたも、値も表示されませんでした。 アドバイスをいただいたifとforの間には、mutterは、まだ定義されていないので記載できませんでした。 if文の外でfor文の中に記載しても、getName,getPassの値は、失敗時には表示されませんでした。 そのコードです。 <%if(mutterList==null){ %> <p>ログインに失敗しました。</p> <a href="/example24/">TOPへ</a> <%} %> <% for(Mutter mutter:mutterList){ %> <%if(mutter.getUserName().length()!=0 && mutter.getUserPass().length()!=0){ %> <p>ログインに成功しました。</p> <%= mutter.getUserName()%> <%= mutter.getUserPass()%> <p>ようこそ<%=loginUser.getName() %>さん</p> <%}else{ %> <p>ログインに失敗しました。</p> <%= mutter.getUserName()%> <%= mutter.getUserPass()%> <a href="/example24/">TOPへ</a> <%}%> <%= mutter.getUserName()%> <%= mutter.getUserPass()%> <% } %> 長文失礼します。 どうぞよろしくお願いします
HiroshiWatanabe

2016/04/25 06:26 編集

mutterList が null ではない時にはかならず名前やパスワードが入っているという前提で考えていませんか?mutterListがnullではないけど中身が空っぽという状況では無いんでしょうか?(例えば count(mutterList)==0 な状態ではありませんか?) if (mutterList!=null) と for の間に count(mutterList) を表示させてみれば状況が明白になりませんかね? --訂正-- Javaでしたね…失礼しました。count(mutterList)ではなくmutterList.lengthかmutterList.size()ですかね。
edoooooo

2016/04/25 06:51 編集

ありがとうございます。 データベースにinsertしてある 灘 1234 では、mutterList.size()の結果が1となり、 insert してない なだ 2345 の場合は0となりました。 nullでなく0ということは、nullでなくても名前や、パスワードは入っていませんでした。 このようにしたところ、無事elseへと進むことが、できました。 <%if(mutterList==null || mutterList.size()==0 ){ %> <p>ログインに失敗しました。</p> <a href="/example24/">TOPへ</a> <%} %> <% for(Mutter mutter:mutterList){ %>  先ほどは、なぜ、length()!=0のelse文に行けるよう、「失敗しました」を2つのif文に分けた場合でも、elseの場合表示がされないのでしょうか?mutterListが0であり、getName().length()がnull出会ったとしても、0ではないので、ログインに成功しました。となるとおもうのですが、なぜなのでしょうか? すみません以前のコードです。 <%if(mutterList==null){ %> <p>ログインに失敗しました。</p> <a href="/example24/">TOPへ</a> <%} %> <%=mutterList.size()%> <% for(Mutter mutter:mutterList){ %> <%if(mutter.getUserName().length()!=0 && mutter.getUserPass().length()!=0){ %> <p>ログインに成功しました。</p> <p>ようこそ<%=loginUser.getName() %>さん</p> <%}else{ %> <p>ログインに失敗しました。</p> <a href="/example24/">TOPへ</a> <%}%> <% } %> 解決していただいたのに、何度も申し訳ありません
HiroshiWatanabe

2016/04/25 07:02

・mutterListが0件な状態ではそもそも for の中を1度も繰り返さない(実行されない)と考えてみてください ・現在は1件限定に決め打ちしているようですがmutterListに2件のデータがあるという想定は不用なのでしょうか? と、いう事でmutterListがnullでもなく0件でもない時だけforで回してログインを試み、ログインできたと表示(認定)が1件も無かった場合は一括してログイン失敗とする、というのが流れ的には良さそうな印象ですが如何でしょうか。
edoooooo

2016/04/25 07:31 編集

二つのif文を一括して、ログイン失敗すると言うコードが、書けません。 elseを2箇所に書くということではないですよね 書いてはみたのですが、教えていただいた流れには、できませんでした。 <%if(mutterList!=null || mutterList.size()!=0 ){ %> <% for(Mutter mutter:mutterList){ %> <%if(mutter.getUserName().length()!=0 && mutter.getUserPass().length()!=0){ %> <p>ログインに成功しました。</p> <p>ようこそ<%=loginUser.getName() %>さん</p> <% }else{%> <p>ログインに失敗しました。</p> <a href="/example24/">TOPへ</a> <%}}} %> このコードでは、mutterListは、nullでも0でもないけどgetName().length()は0という場合に、ifでもelseでもなく、なにも実行されないで終わってしまうのではないのかと、思っています。 コードを教えていただけないでしょうか?どうぞよろしくお願いします。
HiroshiWatanabe

2016/04/25 07:40

mutterListがnullじゃないか件数が0じゃない時に…では無いです。(or) mutterListがnullじゃなくて件数も0じゃない時に、です。(and) ログインができたかどうかの状態を示す変数を用意してそれを使って状態を判断してみてるという手法にしてみるといいかもしれませんね
edoooooo

2016/04/25 07:51

ありがとうございます。!が付いてるから&&出なくてはダメなのですね boolean 型の変数でしょうか?調べてみます。 大変お世話になりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問