在我的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
}
}
我正在使用scaffold进行相应的创建/编辑操作。
我的问题是即使我标记了要显示的passwordConfirmation约束,它也不会显示在脚手架视图中。是否有一些我缺少的东西可以显示瞬态属性?有可能吗?
由于
答案 0 :(得分:5)
默认情况下,grails不会在瞬态属性的视图中创建字段。您可以在每个视图上手动添加它们,或者如果您有很多它们并使用脚手架视图,您可以执行以下操作:
安装视图模板:
grails InstallTemplates
然后在src / templates / scaffolding中打开相关模板
并修改以下行:
persistentPropNames = domainClass.persistentProperties*.name
到
persistentPropNames = domainClass.properties*.name
为每个模板。这有点蠢,但它应该有效,您可以进一步编辑模板以包含/排除您喜欢的任何属性。