Consegui fazer o webwork funcionar, criei alguns exemplos e agora me pintou uma dúvida.
Qual o melhor lugar para persistir os objetos cujos valores são carregados de um form, imagino que eu poderia chamar um método de persistência do próprio objeto na página de sucesso, mais gostaria de ouvir a opinião de quem já trabalha ou conhece o webwork…
Ainda tenho uma dúvida não tão importante, como faço para trabalhar com os labels? Por exemplo o label em um textfield (obrigatório), sempre vem antes do campo seguido por dois pontos, como faço para colocá-lo em uma tabela, ou seja, separá-lo do campo?
você deve persisti-los exatamente onde eles ficarão, se o form representa dados de um banco de dados, no banco, se representa informações de um serviço de diretórios, nele e assim por diante.
Quando os dados são só transitórios faça um wizard com form mesmo e o webwork vai preenchendo os campos do form pra você.
O Webwork é baseado em templates … pra você alterar o padrão crie um diretório “template/xhtml” e crie os tamplates, pra saber quais e ter uma base dentro do jar existe esse diretorio, extraia e faça a festa :lol:
[]s
volnei
Depois que li o meu post eu não percebi que não me expressei muito bem, eu queria dizer qual a melhor hora para executar a persistencia… :oops:
smota
Ops, falha minha
entonces … a hora certa é “depois que os dados forem manipulados” ehehehe … ou seja, após o execute vc faz tudo que tem que fazer e persiste eles antes do return … nao tem muitas opcoes aqui.
ricardolecheta
"volnei":
Depois que li o meu post eu não percebi que não me expressei muito bem, eu queria dizer qual a melhor hora para executar a persistencia... :oops:
o webwork vai popular a sua classe de model, ai é só mandar pro banco.
volnei
Obrigado mais uma vez pessoal !!
Estou tentando utilizar a validação através de arquivos XML mais estou com dificuldades, criei o arquivo meuBean-validation.xml, verifiquei a sintaxe através de exemplos, mais o ww está ignorando a presença do validator, alguem sabe oque eu posso estar fazendo errado? Preciso de alguma configuração extra??Ou algum método no Action…
ricardolecheta
você precisa declarar o interceptor que faz a validação…
volnei
Mais isso não é só em caso de Actions?
ricardolecheta
bem, a que eu sei é fazer na Action, entao o arquivo é:
NomeAction-validation.xml,
como você está fazendo?
smota
Hummm … como?
Não há validações fora da execução de uma action … o controler (webwork) é baseado nelas.
Se você tem o interceptor aplicado veja que o xml tem que esta na mesma package da action.
volnei
“smota”:
Hummm … como?
Não há validações fora da execução de uma action … o controler (webwork) é baseado nelas.
Se você tem o interceptor aplicado veja que o xml tem que esta na mesma package da action.
Não é bem fora da execução da action e sim em uma classe que a action instacia!!
Meu campo se chama “user.name” esse valor é colocado dentro da classe User da minha action…
Quando envio os dados para uma action ela instancia um objeto certo?!, quero que a validação seja em cima desse objeto.
Acho que esse é o único modo de trabalhar com um objeto interno na action.
Sem o model driven todas as propriedades da action devem estar na própria classe da action pra poder utilizar algumas facilidades.
Só na view você é capaz de navegar usando a notação que você citou porque o Webwork usa a OGNL …
volnei
Qual a sua opinião com relação a esse modelo? ele é utilizado? Existem desvantagens?
smota
Não conheço nenhuma desvantagem … tb não tem vantagem se você só tem uma action pra cada modelo.
Eu uso bastante porque tenho action diversas pro mesmo modelo (exemplo: varias alteracoes de status, cada uma de um modo no mesmo modelo).
volnei
Se eu não utilizar este modelo, todos os meus beans seriam actions? Isso não é errado?
Para desenvolver uma aplicação simples, como por exemplo um fórum, qual você aconselharia?
ricardolecheta
Se na sua Action tiver um bean Usuario, voce vai acessar as propriedades de usuario assim: usuario.nome, usuario.email.
Mas se a Action implementar ModelDriven significa que você pode acessar as propriedades diretamente, somente nome e fone, isto porque você é obrigado a implementar o método getModel() que retorna sua classe de model…
volnei
“ricardolecheta”:
Se na sua Action tiver um bean Usuario, voce vai acessar as propriedades de usuario assim: usuario.nome, usuario.email.
E aí como eu valido esse bean Usuario, já que ele não faz parte da action?
“ricardolecheta”:
Mas se a Action implementar ModelDriven significa que você pode acessar as propriedades diretamente, somente nome e fone, isto porque você é obrigado a implementar o método getModel() que retorna sua classe de model…
Como assim acessar diretamente? Você quer dizer que meu próprio bean é a action?
ricardolecheta
"volnei":
E aí como eu valido esse bean Usuario, já que ele não faz parte da action?
o Usuario é um atributo na sua Action, então faz parte da Action.
Para acessar os atributos desta action você acessa como "teste" e como "usuario.nome" , "usuario.fone".
quando você fizer "usuario.nome" o WebWork faz getUsuario().getNome().
"volnei":
Como assim acessar diretamente? Você quer dizer que meu próprio bean é a action?
se implementar ModelDriven, para acessar o nome do usuário você não precisa fazer "usuario.nome", basta acessar diretamente como "nome".
Isto porque você implementou o método getModel() e o WebWork sabe que o bean é o Usuario.
blz?
volnei
Entendi, valeu!!!
R
Richardson
Tenho trabalhado só com Struts e uma coisa chatinha no Struts é a replicação de dados que a ActionForm causa, então pensei em fazer com que o ActionForm popule diretamente meu VO. Só que tenho um probleminha, quando tenho campos que são objetos como Date e outros objetos fica complicado, pois tudo é String no request e complica na hora de converter. Esse esquema de ActionModelDriven do WebWork ja trata disso ou tem esse mesmo tipo de problema???
smota
Na verdade o Webwrok trata as conversões mesmo que você não utilize o ModelDriven, de qualquer modo se utiliza-lo os dados tb serão convertidos :o
Além das conversões padrão você pode registrar seus próprios conversores e parametriza-los apenas usando arquivos de configuração … assim não há limites pras conversões “automágicas” o que é uma mão na roda.
Nunca usei o Struts, mas acredito que deva ter um esquema desse tb pq eh meio básico um framework precisar disso
R
Richardson
Ter até que tem, mas é bem simples para o que eu preciso. Ele converte beleza para tipos primitivos, popula os objetos compostos só que alguns casos como um objetos Date fica mais complicado.