在Grails應用程序從1.3.8升級到2.3.9期間,我遇到了忽略grails內置標記的問題。內建的Grails標記不起作用
例如可以說,GSP頁面有兩個標籤:
<g:if test="${true}">OK</g:if>
<g:hiddenField name="test" />
然後執行的結果將是:
OK
<g:hiddenField name="test" />
,但預期的結果是:
OK
<input type="hidden" name="test" />
基本上來自grails-web-2.3.9.jar的標籤工作正常,但是來自grails-plugin-gsp-2.3.9.jar的標籤完全被忽略。
任何線索爲什麼會發生這種情況表示讚賞。謝謝。
UPDATE: 我發現,在執行TagLibraryLookup.afterPropertiesSet()方法grailsApplication對象爲空的,所以標記庫未註冊。現在尚不清楚爲什麼它是空...
Solotion:? 問題是靜態約束範圍內=域對象{}這是
ApplicationHolder .getApplication()的調用getMainContext( )?getBean(serviceName)方法。它通過改變初始化順序/流來阻止應用程序初始化所有需要的spring/grails bean。
謝謝你的迴應。但這僅僅是一個例子。 Grails不再能識別來自實際應用程序的許多標籤,關於Config.groovy我們使用的是外部的,所以沒有改變。 – user3727892
您需要顯示一個不起作用的內置標籤的示例。 –
有很多,f.e. g:hiddenField,g:include等 – user3727892