这是使用 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 范围内的实际键 - 尽管此方法不能保证它们的顺序。