【发布时间】:2013-01-13 19:38:51
【问题描述】:
我对 Freemarker/Struts2/Spring/Hibernate 等还是很陌生,但我正在做一个旧项目。我修改了一个 FTL 文件以反映一些变化,但我遇到了一个奇怪的问题。
这可行,即检索到正确的值:
<@s.property value="#dataResult.gene.genbankId" />
但是,这不是:
<a href="${geneBankLink}${dataResult.gene.genbankId}" target="_blank">
这两行紧接着出现,即
<a href="${geneBankLink}${dataResult.gene.genbankId}" target="_blank">
<@s.property value="#dataResult.gene.genbankId" /> </a>
产生的错误(简而言之)是:
表达式 dataResult.gene 未定义
freemarker.core.InvalidReferenceException:表达式 dataResult.gene 在 web/search/search_data_result.ftl 的第 54 行第 51 列未定义。
对我来说奇怪的是它确实找到了 dataResult,否则错误将是 dataResult 未定义,而不是 dataResult.gene。
为什么 dataResult.gene 属性可以通过 struts 表示法访问,但不能通过 FreeMarker 表示法访问?
或者,在这种情况下避免使用 FreeMarker 表示法就足够了。
【问题讨论】:
-
#dataResult 与 dataResult 不同
-
是的,但是把#放在那里是一个语法错误... :s
标签: spring hibernate struts2 freemarker