开发者

coldfusion cfsavecontent html page with dynamic variables

As a simple example of the problem:

<cfsavecontent variable = "pageOutput">
   <cfoutput>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
         <title>#page_title#</title>
      </head>
      <body>
         <cfdump var="#URL#">
      </body>
   开发者_高级运维   </html>
   </cfoutput>
</cfsavecontent>

I save this page to disk. Then when I call this newly-generated page via the following URL:

http://blah/products.cfm?search_keyword=bathroom&search_category=451&search_province=Auckland

The dump doesn't display the newly-passed url vars.

I'm obviously missing something pretty basic here.


What you need to do is replace the opening or closing portion of the tag so that when it gets output you have a valid tag. Something like this:

<cfsavecontent variable="page">
 <cfset sCfO = "<" >
 <cfset sCfC = "</" >
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
     <title><cfoutput>#page_title#</cfoutput></title>
  </head>
  <body>
     <cfoutput>#sCFO#</cfoutput>cfdump var="#URL#">
     <cfoutput>#sCFO#</cfoutput>cfoutput>
          #URL.myMessage#
      <cfoutput>#sCFC#</cfoutput>cfoutput>
  </body>
  </html>

Hopefully that makes sense...


If I understand your explanations correctly, in your generated with cfsavecontent pagevariables are already substituted, so you have the static HTML in products.cfm. Try to open it in editor and review the code.

I have a question: what is the purpose of using cfsavecontent here? What are you trying to achieve? Looks like you may not need it at all, plain ol' CFML should do the job.


I would be more inclined to hide that in a function which would read much nicer in your example you could call dumpVariable(url) and encapsulate that in a function. We actually had to do something similar by parsing custom tags from a database into a render function that used cfmodule for the actual implementation. I was pretty happy with the results and it was much easier to tell what was going on in the code than arbitrary character replacement.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜