Grails:如何制作我创造大写的一切?

时间:2010-10-25 15:05:38

标签: groovy uppercase grails linkfieldvalue

我正在使用CSS在创建条目时更改我写入upperCase的所有内容,但这还不够。保存时,文本字段中显示的文本为大写,但Grails存储的实际值保持小写。

我假设我需要更改控制器或其他任何内容。

也许转换$ fieldValue CSS可以工作吗?

任何想法都会有所帮助!

Thnks!

4 个答案:

答案 0 :(得分:19)

您可以为域对象编写setter吗?

class Domain {
 String aField

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

答案 1 :(得分:4)

我认为您在询问如何将域对象的值更改为大写。如果情况并非如此,请澄清问题。

你有很多选择。我会推荐

1)在服务方法中,在保存之前,使用String.toUpperCase()修改域对象上的相应值。

2)您可以通过在域对象上定义beforeInsert方法并在那里执行toUpperCase来使用底层Hibernate拦截器。 (参见grails文档的5.5.1)

3)你可以做这个客户端。但是,如果值是“业务要求”,则值存储为上层,那么我建议执行翻译服务器端。围绕该代码包装测试更容易....

答案 2 :(得分:2)

使用注释是最简洁的方法

import org.grails.databinding.BindingFormat
class Person {
    @BindingFormat('UPPERCASE')
    String someUpperCaseString

    @BindingFormat('LOWERCASE')
    String someLowerCaseString
}

以下是链接:Grails doc for data binding

答案 3 :(得分:1)

您可以使用Groovy元编程来更改所有域类String类型属性的setter,而无需为每个属性实际编写自定义setter。

要执行此操作,请将以下内容添加到init的{​​{1}}关闭

Bootstrap.groovy