Dúvida no Webwork

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?

Grato…

Hummm … depende :shock:

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

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:

Ops, falha minha :smiley:

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.

[code]public class UsuarioAction implements Action
{
private UsuarioVO usuario = new UsuarioVO();

public String execute() throws Exception
{
	// aqui o usuario já esta populado
	// é só gravar
	return SUCCESS;
}

}[/code]

o webwork vai popular a sua classe de model, ai é só mandar pro banco.

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…

você precisa declarar o interceptor que faz a validação…

Mais isso não é só em caso de Actions?

bem, a que eu sei é fazer na Action, entao o arquivo é:
NomeAction-validation.xml,

como você está fazendo?

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.

[quote=“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.[/quote]

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.

Falei besteira?!?

Foi daqui que eu tirei…

:?

Você está utilizando actions ModelDriven?

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 …

Qual a sua opinião com relação a esse modelo? ele é utilizado? Existem desvantagens? :frowning:

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).

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?

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…

[quote=“ricardolecheta”]Se na sua Action tiver um bean Usuario, voce vai acessar as propriedades de usuario assim: usuario.nome, usuario.email.
[/quote]

E aí como eu valido esse bean Usuario, já que ele não faz parte da action?

[quote=“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…[/quote]

Como assim acessar diretamente? Você quer dizer que meu próprio bean é a 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”.

[code]public class UsuarioAction implements Action
{
private String teste;
private UsuarioVO usuario = new UsuarioVO();

// get/set
[/code]

quando você fizer “usuario.nome” o WebWork faz getUsuario().getNome().

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?

Entendi, valeu!!!