Estou mexendo com jsp e servlet. No meu jsp tenho um form com 3 input text e um text area, sendo que os 3 input text estao organizados antes do text area e o text area ta por ultimo no jsp. Ai pra nao ficar dando request.getParameter toda vez que tem campo novo, eu fiz isso:
Enumeration<?> en = request.getParameterNames();
Depois joguei em um vector, so que o problema é que no enumerador, o text area ta vindo na 3º posição, eera pra vir na quarta ja que ficou por ultimo. Alguem sabe pq isso acontece? Ao que parece ele agrupa por componentes, mas nao sei ao certo.
Os parâmetros são lidos pela página (e agrupados se eles tiverem o mesmo nome), e postos em uma hash table.
Como você deve saber, uma hash table não preserva a ordem - na verdade deixa tudo bagunçado.
Quando você usa getParameterNames, você simplesmente lista as chaves dessa hash table.
Se você jogar os nomes dos parâmetros em um vetor, você simplesmente não tem como saber a ordem dos componentes.
Portanto essa ordem que você acha que existe (por componentes) não existe; é melhor você não ficar dependendo da ordem, e pensar em outra maneira para trabalhar na sua página. (Eu nunca tinha pensado em usar um array; eu simplesmente checo se o retorno de getParameter(“nome do parâmetro”) é vazio ou não.
Pois é, eu vou ter que procurar outra forma de trabalhar isso. Eu resolvi utilizar um array, devido ao trabalho que o getParameter na mao traz. Se eu resolver add mais 5 campos com array, nao vo precisar por + 5 getParameters. E o mais indicado é o Vector pq ele é thread safe ^^
Entao, vc disse que eles sao agrupados se estiverem com o mesmo nome. Mas estao com nomes diferentes, o nome que vc diz é o atributo name ou o atributo title?