Receber array como parâmetro no JSP

5 respostas
J

Bem pessoal tenho um componente HTML <select> onde insiro uma Strings, essecomponenete por padrao retorna um array. Estou emviando esse componente por post para uma outra página, onde por ${param.pegaArray}
estou tentando obter o array, mas ele me da uma exceção dizendo que o tipo é indefinido:

Attempt to convert String "undefined" to type "[Ljava.lang.String;"

A questao é, como recebo por parametro um array de String?

5 Respostas

F

vc usa struts??? e esse ${param.pegaArray} pegaArray é um método??

J

naum uso Struts naum…isso…é um método do meu POJO

C

juloko666:
Bem pessoal tenho um componente HTML <select> onde insiro uma Strings, essecomponenete por padrao retorna um array. Estou emviando esse componente por post para uma outra página, onde por ${param.pegaArray}
estou tentando obter o array, mas ele me da uma exceção dizendo que o tipo é indefinido:

Attempt to convert String "undefined" to type "[Ljava.lang.String;"

A questao é, como recebo por parametro um array de String?

Vc não pode chamar métodos com EL, somente acessar atributos da sua classe. Quando vc usa uma EL na forma ${objeto.atributo}, onde provavelmente este atributo é privado na classe, é realizada uma chamada ao método getMeuAtributo() que provê acesso a esse membro da sua classe. Mas isso não quer dizer que vc possa acessar métodos em geral usando EL.

Define seu array como atributo privado na classe e crie um metodo getArray() que retorne esse array. Cuidado com o nome que dara ao array, ao metodo get e como acessará por EL esse atributo no seu JSP. Os nomes devem ser coerentes!

J

Nao blz…isso jah está sendo feito(POJO)…

JSP

${param.recebeArray}

JAVA

private String[] meuArray;

getter's and setter's (todos public)

Mas é possível passar um array do java script por post???

C

Amigo, acho que vc não entendeu o que eu escrevi, dá uma lida com calma ali de novo …

Vc está chamando o array de meuArray
Logo vc deveria ter um metodo getMeuArray()

private String[] meuArray;
//... mais codigo ...

/*preste atencao, o nome do metodo tem que bater com o nome do atributo da classe! Somente a primeira letra que passa a ser maiúscula. */
public String[] getMeuArray(){ 
   return meuArray;
}

No seu JSP vc tem que fazer:

${param.meuArray}

Na EL vc vai usar o MESMO nome do seu atributo. O servlet container cuida de encontrar o respectivo método get para este atributo e coloca o valor no servlet compilado para o JSP.

Criado 15 de fevereiro de 2007
Ultima resposta 15 de fev. de 2007
Respostas 5
Participantes 3