我有简单的层次结构:的Grails - 显示正确的类名
class Atom {}
class Text extends Atom { String value}
class Unit {
List atoms
static hasMany = [ atoms:Atom ]
}
比方说,我们创建一个文本对象和一个单元对象,并作为文本的家长选择单位。它工作正常。当我在单元上调用show方法时,我看到我的单元由一个Atom组成。当我点击这个原子时,它将我重定向到原子控制器,但我的原子实际上是文本,我想看到文本控制器。这是预期的行为,因为在我show.gsp有这样的代码:
<g:each in="${unitInstance.atoms}" var="a">
<span class="property-value" aria-labelledby="atoms-label">
<g:link controller="atom" action="show" id="${a.id}">
${a?.encodeAsHTML()}
</g:link>
</span>
</g:each>
好吧,数据库存储领域中的“类”的实际原子类型,所以我编辑的行3:
<g:link controller="${a.class}" action="show" id="${a.id}">
而$ {a.class}总是返回原子。 所以,我的问题是 - 我们如何得到实际的类名?
不{A的instanceof文本? 'Text':'Atom'}当用作控制器属性的值时工作吗? – sync