コンポーネントで次のコードを使用すると:
<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>