Como validar os campos da tela - Command Objects?
29/05/2008 00:00
0
Não sei se estou fazendo correto... mas em algumas telas eu possuo campos que não estão em minhas 'domain class'. Se esse pensamento estiver correto, qual a melhor forma de validar esses campos?

Obrigado!
Tags: Grails


0
Vou ser um pouco mais especifíco...

Digamos que eu tenha uma Domain Class chamada user... essa tem quatro atributos: name, userId, email, password...

Eu tenho uma tela configure profile... que o cara pode alterar o name, o email e o password...

Entretanto na minha tela de configure profile eu tenho Name, Email, Old Password, New Password e Confirm New Password...

O Old Password é o meu password da minha Domain Class User, mas agora eu tenho New Password e Confirm New Password.

Old Password - o cara tem que digitar o password que esta no banco...
New Password e Confirm New Password não podem estar vazios e nem podem ser diferentes...

Valeu pessoal!
29/05/2008 00:00


0
Vc terá q usar o Command.

Ta aqui o link <!-- m --><a class="postlink" href="http://grails.org/doc/1.0.x/guide/single.html#6.1.9%20Command%20Objects">http://grails.org/doc/1.0.x/guide/singl ... %20Objects</a><!-- m -->

Abraços
29/05/2008 00:00


0
Cara... tentei implementar mas não ficou muito legal... roda, mas a validação dos campos não é feita.

<!-- s:arrow: --><img src="{SMILIES_PATH}/icon_arrow.gif" alt=":arrow:" title="Arrow" /><!-- s:arrow: --> Minha Domain Class User
class User &#123;

String name
String city
String state
String email
String userId
String password
String userType

static constraints = &#123;
...
&#125;

&#125;


<!-- s:arrow: --><img src="{SMILIES_PATH}/icon_arrow.gif" alt=":arrow:" title="Arrow" /><!-- s:arrow: --> Meu controller...

class UserController extends BaseController &#123;

[...]


def profile = &#123;

if (session.userId) &#123;

def user = User.findByUserId(session.userId)

if (request.method == &quot;POST&quot;) &#123;
redirect(action&#58;'configureProfile')[/b] // aqui chamo a action que invoca o Objeto Command

user.name = params.name
user.city = params.city
user.state = params.state
user.password = Crypto.cryptographyMD5(params.newpassword)

if(!user.hasErrors() &amp;&amp; user.save()) &#123;
message = &quot;User $&#123;user.userId&#125; updated with sucess&quot;
&#125;



&#125; else &#123;
message = &quot;The Old password is incorrect!&quot;

&#125;

&#125;
flash.message = message

return [user &#58; user]

&#125;

&#125;

def configureProfile = &#123; ProfileCommand cmd ->

if (!cmd.hasErrors()) &#123;
redirect (action&#58;'profile') // se não tem erros eu mando de volta pra action anterior
&#125;
&#125;

&#125;

/*
* Minha classe Command que possui apenas os campos extras,
* e seus validadores...
*
*/
class ProfileCommand &#123;

String newPassword
String confirmNewPassword

static contraints = &#123;
newPassword(length&#58;6..8, nullable&#58; false,
validator&#58;&#123;
return (it == confirmNewPassword)
&#125;)
confirmNewPassword(length&#58;6..8, nullable&#58;false)
&#125;

&#125;


<!-- s:arrow: --><img src="{SMILIES_PATH}/icon_arrow.gif" alt=":arrow:" title="Arrow" /><!-- s:arrow: --> OBS: minha tela chama-se 'Profile'

Pelo meu pensamento, eu adicionei apenas os campos que eu nao queria na minha domai class user (user contém os campos que irão para a persistencia).

Olha só, eu fiz umas tosqueiras ali com o &quot;flash.message&quot; e o codigo não deve compilar, porque suprimi algumas linhas... assim que o esquema com o Command Object funcionar vou tirar o &quot;flash.message&quot;.

Eu tô no caminho, ou ja me desviei? <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: -->

Valeu! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
30/05/2008 00:00


0
rsmoreira,

Estou com o mesmo problema que você.

Utilizei seus posts como modelo para o meu projeto, porém nao consegui fazer a validação dos campos da classe command.

Esse seu código postado acima está validando os campos da classe command?


vlw
15/10/2008 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto