9
votes

GRAVES: Comment faire tout ce que je crée majuscule?

J'utilise actuellement CSS pour changer tout ce que j'écris en majuscule lorsque je crée une entrée, mais cela ne suffit pas. Lorsque je sauvegarde des choses, le texte affiché dans les champs de texte est majuscule, mais la valeur réelle qui grade reste en minuscule.

Je suppose que je devrais changer quelque chose dans le contrôleur ou quoi que ce soit.

Peut-être transformer la campagne CSS pour capital-campagne pourrait fonctionner ??

Des idées aideraient!

thnks!


0 commentaires

4 Réponses :


4
votes

Je pense que vous vous demandez comment changer de valeurs sur vos objets de domaine en majuscules. Si ce n'est pas le cas, veuillez clarifier la question.

Vous avez un tas d'options. Je recommanderais

1) Dans une méthode de service, avant de sauvegarder, en utilisant string.touppercase () pour modifier les valeurs appropriées sur l'objet de domaine.

ou

2) Vous pouvez utiliser les intercepteurs hibernate sous-jacents en définissant une méthode avant-rigous sur votre objet de domaine et en effectuant la toupie. (Voir 5.5.1 de la documentation de Grails)

ou

3) Vous pouvez faire ce côté-là. Cependant, s'il s'agit d'une "exigence d'activité" que les valeurs sont stockées en tant que supérieure, je recommande de faire le côté du serveur de traduction. Il est plus facile d'envelopper des tests autour de ce code ...


2 commentaires

Lequel est plus court? La taille est une sorte de problème


@ fgualda87 - Je pense que les solutions Tim_yates sont meilleures. et plus court



21
votes

Vous pouvez simplement écrire des configurateurs pour votre objet de domaine?

class Domain {
 String aField

 void setAField( String s ){
   aField = s?.toUpperCase()
 }
}


4 commentaires

@hvgotcodes;) Votre chemin pourrait être plus rapide s'il y a des milliers de propriétés tho :) ou peut-être une sorte de httpfilter


@ fgualda87 Ouais, cette méthode nécessiterait un setter pour chaque accessoire majuscule


Oui, je n'ai que 3 ou 4, donc je vais utiliser votre chemin, grâce aux deux !!


Merci, tim! Court et doux.



1
votes

Vous pouvez utiliser la métaprogramming Groovy pour modifier le Setter pour toutes les propriétés saisies de la chaîne de classe de domaine sans écrire un seigter personnalisé pour chaque propriété.

Pour ce faire, ajoutez quelque chose comme ce qui suit sur le init fermeture de bootstrap.groovy xxx


2 commentaires

Les paramètres à l'intérieur du pourraient être changés au nom de mon domaine?


non, dc est juste une variable locale et grailsapplication est un objet implicite disponible dans bootstrap.groovy , GSPS et probablement d'autres endroits trop. Je pense que c'est une instance de grails.org/doc/1.3.5/api/org/codehaus/groovy/grails/commons/ ...



3
votes

Utilisation d'annotations est une approche la plus propre xxx

ici est un lien pour celui-ci: GRAVES DOC pour la liaison de données


0 commentaires