Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2013, 16:14   #1
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию Java: почему if неверно воспринимает условие?

Уважаемые форумчане, вот почему блок if неверно воспринимает условие и программа заходит в блок несмотря на то, что она должна его пропустить.

Вот у меня тестовые значения в JSP: выводим список животных
Код:
 <form name="selectAnimal" action="index.jsp" method="Post">
<select name="selectAnimal">
<option value="null" selected>Please select animal</option>
<option value="1" >Dog</option>
<option value="2" >Cat</option>
<option value="3" >Fish</option>
</select>
<input type="submit" name="OK" value="OK" > 
</form>

<!--Проверяем выбранный критерий   -->

<% if(request.getParameter("OK") != null){                                 
         if(request.getParameter("selectAnimal")!=null){%> 
       
        <H1>Reading Select Controls</H1>
            You selected 
            <% out.println(request.getParameter("selectAnimal")); %> <br/>
                                            
       <% } %> 
        
       <% } %>
По идее, если выбор не сделан, программа не должна отобразить блок Reading Select Controls, а она все равно туда упорно заходит и смело пишет You selected null

Я уже меняла это условие null на более конкретные выражения типа "NoSelected"
Код:
<option value="NoSelected" selected>Please select animal</option>
.........
  if(request.getParameter("selectAnimal")!="NoSelected"
результат тот же.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 01.06.2013, 16:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
if(request.getParameter("OK")){
...
}
Могу опшибаться. но кроме null еще есть undefined, а его ты не проверяешь.
И это не Джава а джаваскрипт - разные вещи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.06.2013, 16:58   #3
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Само приложение как раз на чистой Java (она просто скрыта в отдельных методах и здесь в примере не представлена), просто когда формируется web-станица JSP она пишется на HTML а все эти <% %> - обертка для Ява кода
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 01.06.2013, 21:05   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и здесь в примере не представлена
Так я и говорю о этом примере
Другое дело что это результат псевдокомпилятора, по факту ты исходник не показываешь, и кто знает что в нем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.06.2013, 02:05   #5
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Виталик, в том -то и дело - этот модуль, по сути дела тестовый, для того, чтобы выяснить, каким образом программа будет реагировать на изменения блока <select></select> Если реакция будет нормальной, я навинчу метод, который будет принимать в качестве параметра индекс типа Interger(кого мы выбрали - собак, котов, рыб), и будет обрабатывать результат - выдавать список пород животных. А если тестовый модуль прекрасно кушает параметр null, я себе представляю, как от этого параметра передергнет функцию. Поэтому мне и надо, чтобы этот блок отрабатывал null идеально, то есть вообще не заходил в if.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 02.06.2013, 09:38   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
if(request.getParameter("selectAnim al")!=null
возмите тип этого параметра и поймете почему этот иф неправильный.
eval вне форума Ответить с цитированием
Старый 02.06.2013, 16:25   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А если тестовый модуль прекрасно кушает параметр null
Так в том то и дело что нет
http://javascript.ru/forum/misc/1413...d-ot-null.html
http://olstudio.3dn.ru/publ/20-1-0-139
Вот и получается что то что "не определено" не равно нулю, потому и заходит.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает условие. Почему? Dmitriy.G Общие вопросы по Java, Java SE, Kotlin 2 03.11.2012 21:41
Неверно работает цикл. Почему — не представляю себе Lanx Помощь студентам 4 04.06.2011 12:55
Почему Access 2007 воспринимает поле как параметр? Сергей089 Microsoft Office Access 1 12.11.2010 21:15
условие для удаления узлов дерева [java] ArniLand Помощь студентам 0 23.09.2010 19:50
Почему выполняется ложное условие? AND Помощь студентам 8 16.11.2007 16:30