或者,我可以让我的默认属性值生效而不使组件持久化吗?
是的,只需将它们设置在您的init()方法中。
<cfcomponent name="person" persistent="false" output="false">
<cfproperty name="gender"><!--- Non-persistent CFC: you can't set a default here --->
<cffunction name="init" output="false>
<cfset variables.gender = "m"><!--- Set the default here --->
</cffunction>
</cfcomponent>
您还需要在持久 CFC 中为任何复杂或动态值默认值(例如数组或当前日期)执行此操作,因为您只能在属性声明中设置简单的默认值(例如文字字符串或整数)。
<cfcomponent name="person" persistent="true" table="persons" output="false">
<cfproperty name="gender" default="m"><!---Persistent CFC, so this simple default will be set --->
<cfproperty name="dateCreated"><!---You can't set a default dynamic date value --->
<cffunction name="init" output="false>
<cfset variables.dateCreated= Now()><!--- Set the current datetime here --->
</cffunction>
</cfcomponent>