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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> принять 2 параметра 
V
    Опции темы
Samotnik
Дата 3.2.2008, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



начит, есть  index.jspx    страница  в которую пользователь вводит данные.
index.jspx :
Код

<form action="ServletClass" method="get">
        <input type="text" size="20" name="parametr1"/><br/>
        <input type="submit" name="Send info"/><br/>
    </form>

Параметр  parametr1  передается на сервлет, там обрабатывается и результат приходит обратно на эту же страницу в выпадающий список. (Это все работает норм!)    Но вот нужно сделать так, чтобы когда пользователь из этого выпадающего списка выбрал название,  это название сохранилось в каком нибудь параметре, к примеру parametr2  и передалось на сервлет!  И соответственно тоже обработался!!  Я пытаюсь делать так
Код

<form action="ServletClass" method="get">
        <input type="hidden" name="parametr2" id="parametr2"/><br/>
        <select onchange="javascript: document.getElementById('parametr2').value=this.options[this.selectedIndex].value">
            <c:forEach var="u" items="${ContentArray}">
                <option selected="true">
                    <c:out value="${u}"/>
                </option>
            </c:forEach>
        </select>
    </form>

Это правильно ???..   
Вопрос:
Как сохранить выбор пользователся в  parametr2  и самое  главное,  как сервлету  узнать, что пришло к нему  parametr1  или  parametr2  ??
PM MAIL   Вверх
Samotnik
Дата 3.2.2008, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



вопрос  понятен ???  smile 
PM MAIL   Вверх
v2v
Дата 3.2.2008, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

<select name="param2">

а значение будет выбранный элемент из списка, и не надо скрытых полей.
в сервлете ппроверяешь:
Код

if request.getParameter("param2")!=null //тогда так, иначе эттак


Это сообщение отредактировал(а) v2v - 3.2.2008, 20:08


--------------------
PM   Вверх
Samotnik
Дата 3.2.2008, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



v2v,  пасибо!    тож так думал  smile 
Вобщем сделал,.... но не работает  :'(   Может что не так понял..... 
Код

<form action="ServletClass" method="GET">
        <input type="text" size="20" name="parametr1"/><br/>
        <input type="submit" name="Send Info"/><br/>
    </form>
    <br/>
    <br/>

    <form action="ServletClass" method="get">
        <select name = "parametr2">
            <c:forEach var="u" items="${ContentArray}">
                <option selected="true">
                    <c:out value="${u}"/>
                </option>
            </c:forEach>
        </select>
    </form>

принимаю на сервлете
Код

//.....
        if(request.getParameter("parametr2") == null){
        log.info(" WARNING!!!  NOW U WILL SEE a message = " + message);
        // ... тут  обработка, все  ок  работает! 
        request.getRequestDispatcher("/index.jspx").forward(request, response);
        }
        else{
            log.info("parametr2    are  u   working ????");
        }

В итоге:  ввожу   слово  оно  обрабатывается  норм!!   приходит  результат  в выпадающий  список!  Тоже все  ок,  работает,   но вот  когда  выбираю  что нибудь  из  списка,  то    инфо сообщение 
 log.info("parametr2    are  u   working ????");   не выводится ...   :'(  

Это сообщение отредактировал(а) Samotnik - 3.2.2008, 20:43
PM MAIL   Вверх
Samotnik
Дата 3.2.2008, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



как не крутил,  нету вообще никакой реакции, на то что  я выбираю в выпадающем списке  smile   
так правильно!   ведь нету  onchange  а что на нее прикрутить??  чтобы при выборе из вылетающего списка запомнить, то что выбрал пользователь ???...

Это сообщение отредактировал(а) Samotnik - 3.2.2008, 21:21
PM MAIL   Вверх
XEugene
Дата 3.2.2008, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А зачем две формы,  причем вторая форма без сабмита?
Ты ведь нажимая сабмит отправляешь первую форму.
PM MAIL   Вверх
Samotnik
Дата 3.2.2008, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Вобщем, сделал  так
index.jspx
Код

 <form action="ServletClass" method="GET">
        <input type="text" size="20" name="path"/><br/>
        <input type="submit" name="Send Path"/><br/>
        <br/>
        <br/>
        <select name="path2">
            <c:forEach var="u" items="${ContentArray}">
                <option selected="true">
                    <c:out value="${u}"/>
                </option>
            </c:forEach>
        </select>
    <input type="submit" value="Send FileName"/><br/>
    </form>

Все  заработало!  Когда надо обработать  path -  обрабатывает его,  когда  path2 - обрабатывает его  smile 
Появился другой вопрос!  Почему, когда я нажимаю на второй  сабмит (который выбирает из списка) то path  не передается??   а передается тоько  path2   на сервлете
Код

 if (request.getParameter("path") != null) {
            getPathVariable = request.getParameter("path");
            log.info(" WARNING!!!  NOW U WILL SEE a getPathVariable = " + getPathVariable);
           //....
            request.getRequestDispatcher("/EnterPath.jspx").forward(request, response);
        } else if (request.getParameter("path") == null){
            getPathVariable = request.getParameter("path");
            getFileNameVariable = request.getParameter("path2");
           log.info("    ??  " + getFileNameVariable);
            log.info("message1   ===========" +  getPathVariable);
 
то в значении  getPathVariable  стоит   null  ??  как  можно прочитать  при нажатии на вторую кнопку содержимое не только из второго окошка, но и из первого ???  smile 
PM MAIL   Вверх
XEugene
Дата 3.2.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Просто сделать одну кнопку сабмит вместо двух.
PM MAIL   Вверх
XEugene
Дата 3.2.2008, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Если нужно,  чтобы кнопки было именно две...  Я не могу сказать точно как влияет наличие двух input type=submit на передачу параметров, поскольку никогда так не делал,  возможно при отправке вторым сабмитом, игнорируются поля расположенные до первого(причем не факт, что во всех браузерах это будет одинаково).   
Чтобы избавиться от этого эффекта можно попробовать заменить input type=submit на button type=submit,  или в крайнем случае сделать два button-а и повесить на onclick каждого из них что-то такое:  document.getElementById('id_формы').submit();

Добавлено через 2 минуты и 23 секунды
Что-то мы в форуме J2EE какими-то совсем не джейтуёвыми делами занимаемся)
PM MAIL   Вверх
Samotnik
Дата 3.2.2008, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



БЛИН,  как я  хотел сделать не получается   :'((    нужно делть 2 формы, иначе  path2  не передается нужно делать так
Код

<form action="ServletClass" method="GET">
        <input type="text" size="20" name="path"/><br/>
        <input type="submit" name="Send Path"/><br/>
        <br/>
        <br/>
    </form>
    <form action="ServletClass" method="GET">
        <select name="path2">
            <c:forEach var="u" items="${ContentArray}">
                <option selected="true">
                    <c:out value="${u}"/>
                </option>
            </c:forEach>
        </select>
        <input type="submit" value="Send FileName"/><br/>
    </form>

Первый параметр  path передается  клева, и возвращается в список,  затем когда я выбираю из списка и передаю  path2  на сервлет, то он клева передается!  НО,  мне необходимо вместе с  path2  получить еще  и  path     как это сделать ???
PM MAIL   Вверх
XEugene
Дата 3.2.2008, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Сделать одну форму и один сабмит.
PM MAIL   Вверх
Samotnik
Дата 3.2.2008, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Цитата(XEugene @  3.2.2008,  23:11 Найти цитируемый пост)
Сделать одну форму и один сабмит.

делал,  он (сервлет) принимает только  path!!   а path2  вообще не видит.  может я ни так делал.. я делал...
Код

<form action="ServletClass" method="GET">
        <input type="text" size="20" name="path"/><br/>
        <br/>
        <br/>
        <select name="path2">
            <c:forEach var="u" items="${ContentArray}">
                <option selected="true">
                    <c:out value="${u}"/>
                </option>
            </c:forEach>
        </select>
        <input type="submit" value="Send FileName"/><br/>
    </form>

PM MAIL   Вверх
XEugene
Дата 3.2.2008, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

        <select name="path2">
            <c:forEach var="u" items="${ContentArray}">
                <option selected="true">
                    <c:out value="${u}"/>
                </option>
            </c:forEach>
        </select>

Что означает атрибут selected в каждом option-е?  По дефолту выбрано всё?  smile 


Попробуй так 
Код

        <select name="path2">
            <c:forEach var="u" items="${ContentArray}">
                <option value="<c:out value="${u}"/>">
                    <c:out value="${u}"/>
                </option>
            </c:forEach>
        </select>
При отстутствии атрибута value значением считается то что между тегами <option></option>,  но я лично всегда прописываю value явно,  даже если оно совпадает с тем что выводится.  Возможно я это делаю не зря...


Это сообщение отредактировал(а) XEugene - 3.2.2008, 23:46
PM MAIL   Вверх
Samotnik
Дата 3.2.2008, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Цитата(XEugene @  3.2.2008,  23:30 Найти цитируемый пост)
Что означает атрибут selected в каждом option-е?  По дефолту выбрано всё?  

это чтение коллекции, которая пришла с сервлета, и вывод  ее в выпадающий список
PM MAIL   Вверх
XEugene
Дата 3.2.2008, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Samotnik @  3.2.2008,  23:39 Найти цитируемый пост)
это чтение коллекции
Это я понял))  Просто атрибут selected означает,  что данный option выбран по-умолчанию,  а когда по-умолчанию выбраны все optionы это странно.

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1233 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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