Servlet & SELECT element
От: EbM  
Дата: 06.05.06 15:45
Оценка:
Возможно,что глупый вопрос Есть веб форма на которой находиться элемент Select типа:
<select id="foo" name="foo">
<option value="1">test1</option>
<option value="2">test2</option>
</select>
Каким образом можно получить в сервлете значения test1 или test2?Если юзаю getParamer,то получаю 1 или 2 соответственноЗаранее благодарен
Re: Servlet & SELECT element
От: msqrt84 Россия  
Дата: 06.05.06 19:20
Оценка:
Здравствуйте, EbM, Вы писали:

EbM>Возможно,что глупый вопрос Есть веб форма на которой находиться элемент Select типа:

EbM><select id="foo" name="foo">
EbM> <option value="1">test1</option>
EbM> <option value="2">test2</option>
EbM></select>
EbM>Каким образом можно получить в сервлете значения test1 или test2?Если юзаю getParamer,то получаю 1 или 2 соответственноЗаранее благодарен

Например, так:

int foo;

try
{
    foo = Integer.parseInt(request.getParameter("foo"));
}
catch (NumberFormatException nfe)
{
    System.err.println(nfe.toString());
}
Re: Servlet & SELECT element
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 06.05.06 19:29
Оценка:
Попробуйте так. Я не уверен, но не зря же там поле value есть

<select id="foo" name="foo">
<option value="test1">test1</option>
<option value="test2">test2</option>
</select>
http://jvmmemory.com — простой способ настройки JVM
Re[2]: Servlet & SELECT element
От: msqrt84 Россия  
Дата: 07.05.06 09:51
Оценка:
Здравствуйте, LeonidV, Вы писали:

LV>Попробуйте так. Я не уверен, но не зря же там поле value есть


LV>
LV><select id="foo" name="foo">
LV><option value="test1">test1</option>
LV><option value="test2">test2</option>
LV></select>
LV>


Кстати, если атрибут value не указан, значением варианта выбора будет содержимое тега <option>.

Поэтому следующий фрагмент равносилен предыдущему:

<select id="foo" name="foo">
<option>test1</option>
<option>test2</option>
</select>
Re[2]: Servlet & SELECT element
От: EbM  
Дата: 07.05.06 21:10
Оценка:
Здравствуйте, msqrt84, Вы писали:

M>Здравствуйте, EbM, Вы писали:


EbM>>Возможно,что глупый вопрос Есть веб форма на которой находиться элемент Select типа:

EbM>><select id="foo" name="foo">
EbM>> <option value="1">test1</option>
EbM>> <option value="2">test2</option>
EbM>></select>
EbM>>Каким образом можно получить в сервлете значения test1 или test2?Если юзаю getParamer,то получаю 1 или 2 соответственноЗаранее благодарен

M>Например, так:


M>
M>int foo;

M>try
M>{
M>    foo = Integer.parseInt(request.getParameter("foo"));
M>}
M>catch (NumberFormatException nfe)
M>{
M>    System.err.println(nfe.toString());
M>}
M>


Может я делаю что-то не так,но я все равно получаю 1-2,а мне нужно получить именно текст(test1-test2)
Re[3]: Servlet & SELECT element
От: msqrt84 Россия  
Дата: 08.05.06 08:59
Оценка:
Здравствуйте, EbM,

Да ну просто HTML надо знать!

Форма:
<select id="foo" name="foo">
<option>test1</option>
<option>test2</option>
</select>

Почему форму можно представить именно так, смотри следующий post от LeonidV.

В сервлете:
String foo = "";

try
{
    foo = request.getParameter("foo");
}
catch (Exception e)
{
    System.err.println(e.toString());
}
Re[4]: Servlet & SELECT element
От: EbM  
Дата: 08.05.06 10:46
Оценка:
Здравствуйте, msqrt84, Вы писали:

M>Здравствуйте, EbM,


M>Да ну просто HTML надо знать!


M>Форма:

M>
M><select id="foo" name="foo">
M><option>test1</option>
M><option>test2</option>
M></select>
M>

M>Почему форму можно представить именно так, смотри следующий post от LeonidV.

M>В сервлете:

M>
M>String foo = "";

M>try
M>{
M>    foo = request.getParameter("foo");
M>}
M>catch (Exception e)
M>{
M>    System.err.println(e.toString());
M>}
M>

так-то оно так,но фишка в том,что <option value="1"> и т.п. все-таки должон присутствовать,вот
Re[5]: Servlet & SELECT element
От: Blazkowicz Россия  
Дата: 08.05.06 15:32
Оценка:
Здравствуйте, EbM, Вы писали:

EbM>так-то оно так,но фишка в том,что <option value="1"> и т.п. все-таки должон присутствовать,вот


Тогда никак. Так как сервер умеет выводить пары (1, test1),(2, test2), то он и должен иметь этот маппинг для того чтобы получить по одному значению другое.
Re: Servlet & SELECT element
От: Yarrow  
Дата: 08.05.06 18:58
Оценка:
EbM>Каким образом можно получить в сервлете значения test1 или test2?Если юзаю getParamer,то получаю 1 или 2 соответственноЗаранее благодарен

Если очень хочется получить из форма сразу и label и value, то можно использовать hidden-поле и заполнять его JavaScript'ом:

HTML:
<script type="text/javascript">
    function getSelectLabel(select){
        document.getElementById("fooLabel").value = select.options[select.selectedIndex].label;
        if(document.getElementById("fooLabel").value.length == 0){
            document.getElementById("fooLabel").value = select.options[select.selectedIndex].innerHTML;
        }
    }
</script>
...
<input id="fooLabel" name="fooLabel" type="hidden" value="test1">
<select id="foo" name="foo" onChange="getSelectLabel(this)">
    <option value="1">test1</option>
    <option value="2">test2</option>
</select>


Java:
String fooLabel = request.getParameter("fooLabel");
String fooValue = request.getParameter("foo");


Но вариант Blazkowicz'а с мэппингом на сервере лучше.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.