如果我在组件中使用以下代码:
<cfpdf action="merge" name="tender">
</cfpdf>
我收到以下错误:
结束标记“”与当前父项不匹配:“cffunction”
但是,如果我将代码更改为:
<cfpdf action="merge" name="tender" />
我没有错误。请注意,我更改代码的唯一方法是关闭标签。谁能向我解释为什么会这样,甚至更好,告诉我如何解决这个问题?
该错误显示在 CFEclipse 的“问题”视图中,但在我在服务器上运行代码时不会发生。
系统设置:Win7,运行带有 CFEclipse v.1.4.3 的 Eclipse Indigo。服务器运行 Coldfusion 8。
更新1:
如果我只是忽略 CFEclipse 显示的解析错误并在服务器上运行代码,它会按预期工作。我想这表明它确实像 Peter Boughton 所建议的那样与 CFEclipse 本身有关,而不是代码本身的问题。
以防万一,这里是函数的完整代码(请注意,这不是生产代码,我目前只是为了让我需要的东西工作而进行测试):
<cffunction name="GetTenderPDF" access="remote">
<cfargument name="Info" type="String" required="true" />
<cfset var Tender = {} />
<cfset var InfoJson = URLDecode(Arguments.Info) />
<cfif Not IsJSON(InfoJson)>
<cfreturn Error(Messages.NOT_JSON) />
</cfif>
<cfset Tender = DeserializeJSON(InfoJson) />
<cfset templatePath = "templates/tenderTemplate_"&Tender.GROUP&".cfm" />
<cfheader name="Content-Disposition" value="attachment; filename=offert.pdf" />
<cfdocument format="pdf" name="mydocument">
<cfloop index="x" from="1" to="15">
<p>
lorem upsom doloras paris hilton is my hero loreum ipsom dsoio foom an to dht end of the world
will anyone actually read this probably not but let me put more realtext in so it flows a bit nicely
<cfloop index="y" from="1" to="#randRange(1,9)#">This sentence will appear a random amount of time.</cfloop>
</p>
</cfloop>
</cfdocument>
<cfdocument format="pdf" name="base">
<cfinclude template="#templatePath#" />
</cfdocument>
<!--- <cfpdf action="merge" name="tender" /> --->
<cfpdf action="merge" name="tender">
<cfpdfparam source="base" />
<cfpdfparam source="mydocument" />
</cfpdf>
<cfcontent type="application/pdf" reset="true" variable="#toBinary(tender)#" />
</cffunction>