在scaffolded视图中显示域瞬态属性

Car*_*los 5 grails transient scaffold

在我的Grails 1.3.7项目中,我有一个像这样的域类:

class User {

String login
String password
String name
String passwordConfirmation

static constraints = {
    login       unique:true, blank:false, maxSize:45
    password    password:true, blank:false, size:8..45, 
                matches: /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*/
    name        blank:false, maxSize:45
    passwordConfirmation display:true, password:true, validator: { val, obj ->
        if (!obj.properties['password'].equals(val)) {
            return ['password.mismatch']
        }}
}

static transients = ['passwordConfirmation']

String toString() {
    name
}
Run Code Online (Sandbox Code Playgroud)

}

我正在使用scaffold进行相应的创建/编辑操作.

我的问题是,即使我标记了要显示的passwordConfirmation约束,它也不会显示在脚手架视图中.是否有一些我缺少的东西可以显示瞬态属性?可能吗?

谢谢

lo_*_*oad 5

默认情况下,grails不会在瞬态属性的视图中创建字段.您可以在每个视图上手动添加它们,或者如果您有很多它们并且正在使用scaffolded视图,您可以执行以下操作:

安装视图模板:

grails InstallTemplates
Run Code Online (Sandbox Code Playgroud)

然后在src/templates/scaffolding中打开相关模板

并修改读取的行:

persistentPropNames = domainClass.persistentProperties*.name
Run Code Online (Sandbox Code Playgroud)

persistentPropNames = domainClass.properties*.name
Run Code Online (Sandbox Code Playgroud)

对于每个模板.这有点蠢,但它应该有效,您可以进一步编辑模板以包含/排除您喜欢的任何属性.