Struts: obter o nome do campo e o conteúdo

3 respostas
ze_kiefa

Tenho o seguinte formulário em HTML/Struts

<html:form action="uploadAction.do" enctype="multipart/form-data" method="POST">
Arquivo 1: <input type="file" name="imagens[0]"/> <br/>
Arquivo 2: <input type="file" name="imagens[1]"/> <br/>
Arquivo 3: <input type="file" name="imagens[2]"/>
</html:form>

O Form

public class UploadForm extends ActionForm{
 private List imagens = new ArrayList();

 public List getImagens()
 {
	return this.imagens;
 }
 
 public FormFile getImagens(int index)
 {
	if( index <= (this.imagens.size()-1) ){
		return (FormFile) this.imagens.get(index);
	}
		
	return null;
 }

 public void setBImageEntrv(int index, FormFile imagem)
 {
	this.imagens.add( imagem );
 }
 
 public void setImagens(List imagens)
 {
	this.imagens = imagens;
 }
	
}

Na Action eu quero obter, além do conteúdo (o objeto FormFile), o nome do campo (ex.: imagens[0], imagens[1]), pois quando acesso o List de imagens, os objetos FormFile não seguem a mesma ordem do formulário HTML.

Fui claro?

3 Respostas

R
No metodo do action vc recebe o ActionForm como parametro, então é só vc fazer o cast para o formAction que vc está usando.
public ActionForward execute(ActionMapping mapping, ActionForm form,
		HttpServletRequest request, HttpServletResponse response)
			throws Exception {

UploadForm uploadForm = (UploadForm) form;

List imagens = uploadForm.getImagens();
ze_kiefa

OK, até aí tudo bem.
Mas pelo List eu não tenho o nome do input file. Digo isso porque os FormFiles no List não estão vindo na mesma ordem do formulário (e eu preciso desse controle, pois essas imagens estão em em banco de dados).

Entendeu?

R

Olha só ! Isso é um chute … mas acho que resolve, se vc usar um Map ou invés de List. No map vc salva key com o numero da ordem.

Criado 15 de outubro de 2007
Ultima resposta 15 de out. de 2007
Respostas 3
Participantes 2