Grails 如何将属性添加到地图?
我有一个域类:Grails 如何将属性添加到地图?,grails,groovy,Grails,Groovy,我有一个域类: class Person { String name Boolean likesGrails Boolean isSmart } 并希望在将数据传递给视图(视图将使用friend决定内容)之前预处理数据(创建新属性friend): 如何添加此friend属性?上面的代码不起作用(它抱怨it.friend不存在)。您应该可以添加: static transients = [ 'friend' ] public boolean isFriend() {
class Person {
String name
Boolean likesGrails
Boolean isSmart
}
并希望在将数据传递给视图(视图将使用friend
决定内容)之前预处理数据(创建新属性friend
):
如何添加此
friend
属性?上面的代码不起作用(它抱怨it.friend
不存在)。您应该可以添加:
static transients = [ 'friend' ]
public boolean isFriend() {
likesGrails && isSmart
}
访问您的域类,然后在您的视图中访问person.friend您应该能够添加:
static transients = [ 'friend' ]
public boolean isFriend() {
likesGrails && isSmart
}
到您的域类,然后访问视图中的
person.friend
如果您不想将其存储在数据库中,则可以添加一个transient
class Person {
String name
Boolean likesGrails
Boolean isSmart
Boolean friend
static transients = [ 'friend' ]
}
但是,您不能动态地将随机属性添加到域类。如果不希望临时属性存储在数据库中,您可以添加临时属性
class Person {
String name
Boolean likesGrails
Boolean isSmart
Boolean friend
static transients = [ 'friend' ]
}
但是你不能在运行中向域类添加随机属性。是否可以向groovy映射添加属性(比如说,
人不是来自hibernate,只是被定义为'def people=[…])?是的,你应该可以像你的问题中那样添加属性:-)@zoran119例如:[[a:1,b:2],[a:3,b:4].收集{it.c=it.a+it.b;it}
是否可以将属性添加到groovy映射中(假设people
不是来自hibernate,而是刚刚定义为'def people=[..)?是的,您应该能够像在您的问题中那样添加它:-)@zoran119例如:[[a:1,b:2],[a:3,b:4]]。收集{it.c=it.a+it.b;