Como pegar parametro de um campo Select com multiple

6 respostas
C

Pessoal tenho um campo Select do html com essa configuração

select size=“4” name=“List1” tabindex=“2” multiple

formando uma lista, nesta lista possa selecionar mais que um item, quando gero um submite ele envia os dados assim:List1=item1&List1=item2&List1=item3

no jsp pego assim
String lista = request.getParameter(“List1”);
out.print(lista):
resultado
item1

Como que faço para pegar o resto dos itens?, pois ele só pega o primeiro.

6 Respostas

V

Tenta passar com POST ao invés de GET e acessa os valores como sendo um array…

nunca fiz isso, mas acredito que deve funcionar deste modo.

String[] selected = (String[]) request.getAttribute("List1");
C

Tenta isso:

String [] param = request.getParameterValues("List1");
C

Pessoal obrigado pela ajuda tentei todas as formas, mas não deu, então usei o miau(gato) cria um campo hidden no html e em javascript concatenei todos od valores neste campo ficando assim.
campo = item1,item2,item3,item4
e no jsp usei a classe Tokenizer para separar os campos e jogar num vetor assim:

String campos = getParameter(“campo”);

String vetor[] = new String[50];

StringTokenizer st = new StringTokenizer(campos,",");
int cont=0;
while (st.hasMoreTokens()) {    
	vetor[cont]= st.nextToken(); 
	cont++; 
}
M

Chand… vou aproveitar a sua solução e passar para o meu amigo da Unimed que está com o mesmo problema.

C

“chand”:
Pessoal obrigado pela ajuda tentei todas as formas, mas não deu, então usei o miau(gato) cria um campo hidden no html e em javascript concatenei todos od valores neste campo ficando assim.
campo = item1,item2,item3,item4
e no jsp usei a classe Tokenizer para separar os campos e jogar num vetor assim:

String campos = getParameter(“campo”);

String vetor[] = new String[50];

StringTokenizer st = new StringTokenizer(campos,",");
int cont=0;
while (st.hasMoreTokens()) {    
	vetor[cont]= st.nextToken(); 
	cont++; 
}</blockquote>

chand você fez algo errado. O que te passei é o padrão para pegar objetos do html com o mesmo nome. Eu testei isso antes postar. Veja como foi que você implementou isso porque o que está fazendo é um verdadeiro miau e vai te dar problemas quando for dar manutenção.

&lt;HTML&gt;
&lt;HEAD&gt;
&lt;TITLE&gt; New Document &lt;/TITLE&gt;
&lt;/HEAD&gt;
&lt;BODY&gt;
&lt;FORM METHOD=POST ACTION="index.jsp"&gt;
&lt;SELECT NAME="List1" multiple&gt;
	&lt;option value=1&gt;1&lt;/option&gt;
	&lt;option value=2&gt;2&lt;/option&gt;
&lt;option value=3&gt;3&lt;/option&gt;
&lt;option value=4&gt;4&lt;/option&gt;
&lt;option value=5&gt;5&lt;/option&gt;
&lt;option value=6&gt;6&lt;/option&gt;
&lt;option value=7&gt;7&lt;/option&gt;
&lt;option value=8&gt;8&lt;/option&gt;
&lt;option value=9&gt;9&lt;/option&gt;
&lt;option value=10&gt;10&lt;/option&gt;
&lt;/SELECT&gt;
&lt;INPUT TYPE="submit"&gt;
&lt;/FORM&gt;
&lt;%
String &#91;&#93; param = request.getParameterValues&#40;"List1"&#41;;
if&#40;param != null&#41; &#123;
	for&#40;int i =0; i&lt;param.length; i++&#41;&#123;
		out.println&#40;"valor" + i + "= " + param&#91;i&#93; + "&lt;BR&gt;"&#41;;
	&#125;
&#125;
%&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;

Vale lembrar que isso é um exemplo apenas. Não coloquem código java nos JSP’s por favor.

C

Valeu caitiff-jVampire eu realmente estava fazendo algo errado pois agora deu certo, eu sabia te tinha um geito de fazer isso de um modo limpo sem gato, só como que eu estava mei com preça foi no gato mesmo, mas agora ja estou arrumando valeu.

Criado 27 de outubro de 2004
Ultima resposta 28 de out. de 2004
Respostas 6
Participantes 4