这是使用 switch/case 的替代方法 - 将标签放入结构中
<cfset FieldLabels = 
    { 'first_name'  : "First Name"
    , 'last_name'   : "Last Name"
    , 'other stuff' : "Whatever you like"
    }/>
<cfoutput>
    <ul>
        <cfloop index="CurField" list=#Form.FieldNames# >
            <cfif len(trim( Form[CurField] )) >
                <li>
                    #StructKeyExists( FieldLabels , lcase(CurField) )
                        ? FieldLabels[ lcase(CurField) ]
                        : HtmlEditFormat( replace(CurField,'_',' ','all') )
                    #
                    : #HtmlEditFormat( Form[CurField] )#
                </li>
            </cfif>
        </cfloop>
    </ul>
</cfoutput>
请注意,它不适neq 0用于 len - 这完全没有必要。
第a ? b : c一个哈希内部的构造是三元条件运算符 - 一种执行 if/else 的紧凑方式 - 在 CF10 和 Railo 3.3 及更高版本中受支持。
如果名称没有明确的标签,它会用空格替换下划线,如果报告是针对非技术受众的,这可能更可取。
如果您有可能在不修改 FieldNames 列表的情况下在表单范围内添加(或删除)项目的代码,您可以为此更改循环...
<cfloop item="CurField" collection=#Form# >
    <cfif CurField EQ 'FieldNames'>
        <cfcontinue />
    </cfif>
    ...
它查看 Form 范围内的实际键 - 尽管此方法不能保证它们的顺序。