Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> public в JSP 
V
    Опции темы
WickedMan
Дата 10.1.2008, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



всем здравствуйте!
из нижеприведенного кода мне необходимо переменные data и date сделать глобальными.
Код

String clParameter=request.getParameter("cl");
if (clParameter!=null && clParameter.length()!= 0) 
    {
    String    a = clParameter;
    Date b = new SimpleDateFormat("dd-MM-yyyy").parse(a);
    String data = new SimpleDateFormat("yyyy-MM-dd").format(b);
    java.sql.Date date = java.sql.Date.valueOf(data);
    }


попробовал так - не получается....
Код

...
        {
        ...
    public String data = new SimpleDateFormat("yyyy-MM-dd").format(b);
    public java.sql.Date date = java.sql.Date.valueOf(data);
    }


что посоветуете, люди добрые?  smile
PM MAIL   Вверх
Kangaroo
Дата 10.1.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



Цитата(WickedMan @  10.1.2008,  10:14 Найти цитируемый пост)
из нижеприведенного кода мне необходимо переменные data и date сделать глобальными.

Что значит глобальными? Если нужен доступ к переменным после if блока, то это делается так:
Код

String clParameter=request.getParameter("cl");    
String data = null;
java.sql.Date date = null;
if (clParameter!=null && clParameter.length()!= 0)    
    {    
    String    a = clParameter;    
    Date b = new SimpleDateFormat("dd-MM-yyyy").parse(a);    
    data = new SimpleDateFormat("yyyy-MM-dd").format(b);    
    date = java.sql.Date.valueOf(data);    
    }



--------------------
Lost....
PM MAIL MSN   Вверх
WickedMan
Дата 10.1.2008, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



Код

String clParameter=request.getParameter("cl");    
String data = null;
java.sql.Date date = null;
if (clParameter!=null && clParameter.length()!= 0)    
    {    
    String    a = clParameter;    
    Date b = new SimpleDateFormat("dd-MM-yyyy").parse(a);    
    data = new SimpleDateFormat("yyyy-MM-dd").format(b);    
    date = java.sql.Date.valueOf(data);    
    }
//до сих пор все хорошо
................
//а как быть с этим?
java.sql.Date d1 = java.sql.Date.valueOf(data);    //насколько я понял, здесь береться data = null, а нужна ведь дата...
java.sql.Date dt = new java.sql.Date(System.currentTimeMillis());

PM MAIL   Вверх
Kangaroo
Дата 10.1.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



Цитата(WickedMan @  10.1.2008,  10:56 Найти цитируемый пост)
//а как быть с этим?

Там берется дата = null, если мы не зашли в if блок. Если зашли - берутся правильные значения.

Поставьте при инициализация значения по умолчанию, тогда null не будет точно.


--------------------
Lost....
PM MAIL MSN   Вверх
WickedMan
Дата 10.1.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



дело в том, что значения по умолчанию нет как такового, оно выбирается пользователем и соответственно каждый раз разное....
я пробовал сделать больной-огромный if - все работает, но для меня это не приемлемо, т.к. там будет еще один большой if (другой).

существуют ли варианты решения? или переделывать все?
PM MAIL   Вверх
Kangaroo
Дата 10.1.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



WickedMan, что не работает? Вы попробовали как я написал?


--------------------
Lost....
PM MAIL MSN   Вверх
Tony
Дата 10.1.2008, 12:29 (ссылка) |   (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



WickedMan, плохо 4то скриплеты пишешь в йсп. smile  smile 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
WickedMan
Дата 10.1.2008, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



Kangaroo, да, пробовал. в принципе как Вы написали - работает, но не до конца правильно...
никакой даты по умолчанию нет и быть не может.

Код

String clParameter=request.getParameter("cl");    
String data = null;
java.sql.Date date = null;
if (clParameter!=null && clParameter.length()!= 0)    
    {    
    String    a = clParameter;    
    Date b = new SimpleDateFormat("dd-MM-yyyy").parse(a);    
    data = new SimpleDateFormat("yyyy-MM-dd").format(b);    
    date = java.sql.Date.valueOf(data);    
    }


этот блок if я расширить не могу - тогда получится просто каша (причем ОЧЕНЬ не вкусная), а после него идет такой код, дге требуется data в формате yyyy-MM-dd, а не null

Код

java.sql.Date d1 = java.sql.Date.valueOf(data);  
java.sql.Date dt = new java.sql.Date(System.currentTimeMillis());


такая вот проблема...


Это сообщение отредактировал(а) WickedMan - 14.1.2008, 09:13
PM MAIL   Вверх
batigoal
Дата 10.1.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



WickedMan, я ничего не понял. Если у тебя после выполнения кода datа по-прежнему равна null, значит, ты либо не передаешь в запросе параметр c1, либо передаешь его в неправильном формате.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Kangaroo
Дата 10.1.2008, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



Цитата(WickedMan @  10.1.2008,  11:56 Найти цитируемый пост)
этот блок if я расширить не могу - тогда получится просто каша (причем ОЧЕНЬ не вкусная), а после него идет такой код, дге требуется data в формате yyyy-MM-dd, а не null

Ну так если clParameter задан - тогда эти переменные будут не нулл и все вычислится. А если не задан - выдавайте нулевой результат. Вроде все правильно.


--------------------
Lost....
PM MAIL MSN   Вверх
WickedMan
Дата 11.1.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



попробую еще раз объяснить:

Код

String clParameter=request.getParameter("cl");
String data = null;
java.sql.Date date = null;
if (clParameter!=null && clParameter.length()!= 0) 
    {
    String    a = clParameter;
    Date b = new SimpleDateFormat("dd-MM-yyyy").parse(a);
    data = new SimpleDateFormat("yyyy-MM-dd").format(b);
    date = java.sql.Date.valueOf(data);
//    } /*мне надо что бы блок if заканчивался здесь*/
...

...

...
...                        

...        
    java.sql.Date d1 = java.sql.Date.valueOf(data); //здесь требуется data в "yyyy-MM-dd", но т.к. до блока if "data=null", и на момент запуска программы дата не задана возникает ошибка java.lang.IllegalArgumentException at java.sql.Date valueOf(Date.java:94)

    java.sql.Date dt = new java.sql.Date(System.currentTimeMillis());
...
}  //if блок заканчивается здесь, а должен раньше


это рабочая версия, но ее требуется подкорректировать...
PM MAIL   Вверх
batigoal
Дата 11.1.2008, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



WickedMan, так что ты от нас-то хочешь? Если дата у тебя - null, то только ты можешь решить, что же с ней сделать - показать пользователю сообщение об ошибке, подставить значение по умолчанию, или сделать что-нибудь ещё.

Цитата(WickedMan @  11.1.2008,  10:34 Найти цитируемый пост)
/*мне надо что бы блок if заканчивался здесь*/

Ну так закрой скобку.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
WickedMan
Дата 11.1.2008, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



если я закрываю скобку ТАМ - портлет вообще не запускается
содержание ошибки: java.lang.IllegalArgumentException at java.sql.Date valueOf(Date.java:94).
значения по умолчанию у меня не существует
PM MAIL   Вверх
batigoal
Дата 11.1.2008, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Тогда объясни, что ты хочешь получить в строке
Код

java.sql.Date d1 = ...

в случае, когда if не выполняется?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
DEER
Дата 11.1.2008, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



типа такого:
Код

String clParameter=request.getParameter("cl");    
String data = null;
boolean show = false;
java.sql.Date date = null;
if (clParameter!=null && clParameter.length()!= 0)    
    {    
    show = true;
    String    a = clParameter;    
    Date b = new SimpleDateFormat("dd-MM-yyyy").parse(a);    
    data = new SimpleDateFormat("yyyy-MM-dd").format(b);    
    date = java.sql.Date.valueOf(data);    
    }
....
...


....
if(show) {
 java.sql.Date d1 = java.sql.Date.valueOf(data); //здесь требуется data в "yyyy-MM-dd", но т.к. до блока if "data=null", и на момент запуска программы дата не задана возникает ошибка java.lang.IllegalArgumentException at java.sql.Date valueOf(Date.java:94)
    java.sql.Date dt = new java.sql.Date(System.currentTimeMillis());
}

или же все вычисления внутри первого логического блока. Иначе с такой реализацией никаг ИМХО

Это сообщение отредактировал(а) DEER - 11.1.2008, 10:59


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.