我有簡單的層次結構:的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