Skip to main content
saeedk91074034
Participant
August 7, 2026
質問

CFTABLE and CFCOL source code

  • August 7, 2026
  • 返信数 5.
  • 27 ビュー

We have a legacy app that extensively uses CFTABLE and CFCOL. Since these tags were removed from CF2025 I was wondering if it would be possible for Adobe to post the source code for these tags so that we can define them as customtags so that we don’t need to manually re-write every page in this application. It doesn’t seem like it would be that big of a deal for them to do this and it would save us a great deal of time and effort as all we would need to do is change <CFTABLE to <CF_CFTABLE and <CFCOL to <CF_CFCOL [or whatever the customtag is called] instead of changing all of the HTML on every single CFM file.

thanks.

 

    返信数 5

    BKBK
    Community Expert
    Community Expert
    August 9, 2026

    “User-Interface (UI) code” does not necessarily imply code that contains client-side programming logic. In other words, generated HTML that contains neither JavaScript nor CSS may still constitute UI markup.

     

    I would not call CFTABLE/CFCOL simplistic. In fact, I consider them complex.

     

    For one thing, they combine server-side, business code (queries) with client-side, presentation code (HTML). That is a red flag right there. Combining server-side and client-side goes against a fundamental software best-practice, namely, separation-of-concerns. That alone is a good reason for the tags to be removed or modified.

     

    There is another reason for removal or modification: the age of the HTML version used by CFTABLE. The tag generates HTML 3. That version is 29 years out of date, and HTML has changed a lot in the years since. That tells you that some modernization would have been required for the CFTABLE codebase. In any case, you wouldn’t want to design your backend in such a way that it relies on version changes at the frontend. It seems reasonable to assume that the Adobe ColdFusion team would weigh such considerations.

     

    ColdFusion's codebase is closed-source.  Only the Adobe Team knows which libraries were used by CFTABLE/CFCOL and which, if any, have been deprecated. We can only offer guesses. 

    Charlie Arehart
    Community Expert
    Community Expert
    August 9, 2026

    Like a moth to a flame... 

    Saeed, you'll want to read from the bottom up to make sense of the back and forth. :-) 

    /Charlie (troubleshooter, carehart. org)
    BKBK
    Community Expert
    Community Expert
    August 8, 2026

    Hi ​@saeedk91074034, I have some thoughts about your appeal to Adobe. You request them to post the source code for CFTABLE and CFCOL to be used on ColdFusion 2025. Unlike what you say, I think it would be a big deal for them to do so. My reason follows.

    A likely consequence of the removal of CFTABLE and CFCOL from ColdFusion 2025 is that some or all of the related Java libraries have been removed as well. In fact, I would bet that a significant part of the source code that you’re requesting no longer exists. Not on ColdFusion 2025, in any case.

    That your legacy app uses CFTABLE and CFCOL extensively is a major obstacle. It impedes the app’s progress. Not only were these tags deprecated since ColdFusion 2016 and unsupported since ColdFusion 2018, the ColdFusion community has been warning against the use of such CF user-interface tags for more than a decade. 

    Therefore, my suggestion is that you and your team knuckle down and replace the CFTABLE and CFCOL code once and for all. Besides future-proofing your code, this will be much less expensive than the solution you currently have in mind. I say that from experience.

    Charlie Arehart
    Community Expert
    Community Expert
    August 8, 2026

    FWIW, I'll note that cftable is unlike those ui tags that were long eschewed: it only creates html, an html table, from query results. That's it. No Javascript, no ui elements, no library that might have been deprecated. It was simple and simplistic.

    Was it perhaps an unfortunate choice 30 years ago for that to be added, making people "lazy"? Well, it fit the mantra of cf making things easy. It did in a couple of lines what could take several (of cfml generating the html).

    I never understood why it needed to be deprecated, since this is indeed all it did. But many things had been marked deprecated for nearly 30 years, like parameterexists. That, too, was yanked only as of cf2025. Granted, it was replaced by isdefined also back then...and many eschew that in favor of "better" alternatives like structkeyexists. 

    I get Adobe's desire to "cleanup" the language, and to have a formal policy for removal of deprecated things rather than leave them in that state. I would just question whether these two things were really justified to depreciate. There are other tags/functions with "alternatives".

    Removing old things complicates migrations, like Saeed's here. I just lament removal of things that were inherently broken. And again I don't think cftable relied in any removed library. 

    Anyway, our points have been made. (We'll assume you'd see my reply to him here yesterday.) Let's hope we hear from him now. 

    /Charlie (troubleshooter, carehart. org)
    Charlie Arehart
    Community Expert
    Community Expert
    August 8, 2026

    Saeed, I think think there’s much hope for your wish.

    1 - First, let me share that I could find no such code offered by anyone else. I worked for a couple of hours with an AI on some variants.

    2 - Second, such code needs to accommodate that someone’s cfcol text attribute variables might simply be #mycolname# (like text=”#firstname#”), which is fine for cftable/cfcol. But once a cftable is changed to cf_table, now the compiler loses its ability to understand that that variable was indeed a column name in the query.

    And sure, that could be corrected by adding the queryname as a prefix (in each variable in the text attribute value), but now that becomes far harder to rectify across hundreds of templates.

    3 - The code I came up with works instead by a technique that simply requires that the pound signs for the variable names be escaped (text=”##firstname##”). 

    If someone had just one or a few to do manually, that’s not bad. But for hundreds of occurrences, that would be really tedious. (And a regex doesn’t work well, because one may have the text attribute on the same line as a cfcol, or on another line--since CFML is flexible like that. A regex would have to work really hard. And even then the text attribute may have more than simple a variable name but could be a string with a variable within it, further complicating such a regex.) 

    4 - Even then, both tags have multiple optional/required attributes. For any code to work “for everyone” it would have to accommodate those, which adds complication to the effort.

    5 - As for hoping Adobe might “release the source code”, that source code would be java, which turns your CFML into java before Java would compile it to bytecode. Their java source would not help us (in my opinion). In any case, tou may want to email Adobe directly about your request for “source code”, at cfsup@adobe.com. They don’t tend to answer here.

    6 - Does this mean you’ll face the prospect of a great deal of time to deal with it otherwise? Yes. It is sad that the tags were removed. They’d been deprecated for 10 years, and unsupported for 8. Once they’re removed, that’s it (unless you/others can somehow persuade them to relent).

    7 - That said, you’re not “dead in the water”. You can still run them on CF2023, and it will get updates for 2 more years. It’s THEN that you’d be in trouble. But you could spend that time working to either change from using cftable/cfcol to using other techniques, or you could hope someone may come up with a custom tag that handles things better.

    It’s entirely possible that someone else seeing this will want to spend time trying to solve this, working with their own AI. (And anyone offering any code publicly will of course then face the prospect that inevitably someone will present some scenarios where that code won’t work. So...it’s a slog...for someone--them or the folks dealing with the removal of the tags.) 

    Hope that’s at least better than no answer here at all.

    /Charlie (troubleshooter, carehart. org)