[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 

Forum Read-Only! Check the new site and forum here!

Uso de VOFilter e FileUploadFilter [Não é bug]  XML
Forum Index -> Bugs
Author Message
vdiniz



Joined: 12/05/2007 09:37:16
Messages: 17
Offline

Pessoal,

Estou usando em uma action VOFilter e FileUploadFilter. O que me chamou atenção é que ao trocar a ordem dos filters o comportamento deles mudam.

No meu caso o trecho de código:

Code:
 SpringActionConfig action = new SpringActionConfig("/student", "studentAction");
 action.addFilter(new FileUploadFilter());
 action.addFilter(new VOFilter(Student.class,"student"));
 action.addFilter(new OVFilter("student"));
 


Isso funciona, injeta todos os valores do formulário na classe Student e o cria o FileItem normalmente. Agora se mudar para o seguinte código:


Code:
 SpringActionConfig action = new SpringActionConfig("/student", "studentAction");
 action.addFilter(new VOFilter(Student.class,"student"));
 action.addFilter(new OVFilter("student"));
 action.addFilter(new FileUploadFilter());
 


Passa a não injetar mais os valores do formulário, somente cria o FileItem.

Tem algum sentido esse comportamento?

Abs
[WWW]
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Posso esta enganado mas este filtro deve ser carregado fora das configurações da action.

Code:
 public void loadActions() {
 
 ActionConfig ac = action(LogoutAction.class)
       .on(SUCCESS, redir("/pages/login.jsp?err=loading"));
 
 filter(new FileUploadFilter());
 
 //BLA BLA BLA
 }


Code:
        action("/File", FileAction.class, "upload")
                 .on(SUCCESS, fwd("/pages/file/confirm.page"))
                 .on(ERROR, fwd"/pages/file/upload.page"))
 


É como eu estou usando, funcinando com validação de tipo, tamanho e tudo pelo validator, etc... e se não estou enganado existe um post sobre isto no forum, não sei se foi o boaglio ou o rubens que falou sobre isto, é bem antigo.

Leiber Wallace
Voixy ::: Soluções em Telecomunicações
vdiniz



Joined: 12/05/2007 09:37:16
Messages: 17
Offline

Isso quer dizer que tenho que ter um filtro de upload em todas as actions mesmo que só use em uma?

Deu uma olhada no fórum e achei esse post...

http://forum.mentaframework.org/posts/list/452.page

Parece um bug antigo. Esse bug relatado no link já foi corrigido?

Abs
[WWW]
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Exatamente este post ai.

RubemAzenha wrote:
Pode colocar o FileUploadFilter como global, para ser executado antes de todos os outros filtros, não tem problema algum.  


Bom vc pode colocar ele como global como disse o rubens ai que não há problemas, agora se foi desenvolvido uma solução para isto não sei.

Nossa, não sei como eu lembro de tanto duvidas e bugs que já passaram por este forum, tem dois anos e meio esse post.... kkkkk


Leiber Wallace
Voixy ::: Soluções em Telecomunicações
vdiniz



Joined: 12/05/2007 09:37:16
Messages: 17
Offline



Beleza. Mas pelo post é um bug... mudei a ordem dos filtros e está funcionando. Só fiz o post para informar ao pessoal esse comportamento...

Acho que seria um ponto a ser corrigido no framework pois acho desnecessário colocar um filtro global para ser utilizado somente em uma action.

Abs!
[WWW]
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

vdiniz wrote:


Beleza. Mas pelo post é um bug... mudei a ordem dos filtros e está funcionando. Só fiz o post para informar ao pessoal esse comportamento...

Acho que seria um ponto a ser corrigido no framework pois acho desnecessário colocar um filtro global para ser utilizado somente em uma action.

Abs! 


Não acho que isso seja bug, pois vc precisa do FileUploadFilter para resolver uma requisicao do tipo multipart e popular os parametros no input da action. Isso é de HTTP, ou seja, sem o FileUploadFilter a requisiçao não pode ser entendido na forma de key1=value1&key2=value2.

Por isso o FileUploadFilter tem que ser utilizado em todas os formulários que fazem upload.

Sergio Oliveira

vdiniz



Joined: 12/05/2007 09:37:16
Messages: 17
Offline

Sim Sérgio... concordo plenamente mas o meu caso não é esse.

O meu caso é que para uma action eu preciso do FileUploadFilter pois nessa requisição eu envio os dados multipart e somente nessa.

O que o IceWOlf falou foi colocar isso como filtro global e com isso todas as actions do sistema passam a usar esse filtro. Falei que achava desnecessário colocar como global a partir do momento que eu só uso isso para uma action.

O que acontece comigo é que ao mudar a ordem que eu adiciono os filtros em uma action, o comportamento muda. Se eu adicionar o FileUploadFilter depois do VOFilter, o VOFilter não popula os dados em minha classe pojo. Agora se colocar o FileUploadFilter antes, o VOFilter popula. Achei isso estranho... e no post que coloquei um link do próprio fórum onde isso foi detectado como um bug mas com FileUploadFilter e IocFilter. Por isso que achei que fosse um bug.
[WWW]
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

vdiniz wrote:

O que o IceWOlf falou foi colocar isso como filtro global e com isso todas as actions do sistema passam a usar esse filtro. Falei que achava desnecessário colocar como global a partir do momento que eu só uso isso para uma action.
 


Concordo, não acho legal colocar o FileUploadFilter como global. Ele é um filtro específico para as actions que fazem upload e apenas para elas.


O que acontece comigo é que ao mudar a ordem que eu adiciono os filtros em uma action, o comportamento muda. Se eu adicionar o FileUploadFilter depois do VOFilter, o VOFilter não popula os dados em minha classe pojo. Agora se colocar o FileUploadFilter antes, o VOFilter popula. Achei isso estranho... e no post que coloquei um link do próprio fórum onde isso foi detectado como um bug mas com FileUploadFilter e IocFilter. Por isso que achei que fosse um bug. 


Isso não é estranho, é totalmente esperado. A ordem dos filtros fazem diferença. O FileUploadFilter precisa estar ANTES do VOFilter, caso contráio o VOFilter não encontra nada no input da action, pois o FileUploadFilter é o que transforma uma requisição multipart numa requisição normal.

Concluindo: A ordem dos filtros é importante e faz diferença.

Sergio Oliveira

 
Forum Index -> Bugs
Go to:   
Powered by JForum 2.1.6 © JForum Team