我設置一個bean的屬性,以一個String對象,然後當我試圖讓該屬性的類名,以下錯誤拋出:如何獲取String對象的類名?
預期哈希值。 plist [0] .javaType在ibatis/macro.ftl的第7行第26列中被評估爲freemarker.template.SimpleScalar。
模板的代碼如下:
<#assign clsName=plist[0].javaType.class.name>
當屬性JavaType是設置爲一個Java bean,類名可以正確得到。爲什麼?我需要的屬性可以是任何類型,java bean,非java bean。
你的意思是實現TemplateMethodModelEx的exec方法,它的工作原理與freemarker函數一樣嗎?聽到fm無法自然地獲得所有類名是很奇怪的,畢竟它是用java編碼的,與java一起工作的,並且有很多java的函數(方法)。 – user1231111 2012-02-26 06:20:34
模板語言是*在Java中實現的,但不使用Java類型/類。就像你有一個字符串一樣,你沒有'.length()'。這是因爲您可能會將非字符串Java對象作爲字符串公開,並且應該保持透明。無論如何,您仍然可以努力獲取類名(請參閱該值是否實現了'TemplateModelAdapter'等),這對您的特定應用程序來說可能足夠好,但是沒有解決方案適用於每個使用FM的地方。因此,模板語言中沒有任何內容。 – ddekany 2012-02-26 10:25:27
嗨ddekany,你可以請給我一個關於如何確定實現TemplateModelAdapter的值的示例?謝謝。 – user1231111 2012-02-27 01:29:48