我正在学习Framework1并尝试做一个简单的ColdFusion程序,在提交表单后将数据插入数据库。
我的简单表单person.cfm
位于views/main
<form name = "savePerson" action="#buildurl('person')#" method="post">
在表单操作中,我将控制器person.cfc
我在person.cfc
文件夹中有controllers
,其中包含组件中的代码
<cffunction name="person">
<cfif isDefined("rc.savePerson")>
<cfset variables.services.person.savePerson()>
</cfif>
</cffunction
和person.cfc
中的SQL插入语句,savePerson
文件夹中的函数名称为services
。
Application.cfc有代码
function setupApplication() {
var bf = new framework.ioc( "services" );
setBeanFactory( bf );
}
当我提交表单时,我收到以下错误
onRequest中的原始异常
行动人员。人员失败。
Element SERVICES.PERSON在类型为[Ljava.lang.String;类型]的Java对象中未定义。引用为&#39;&#39;
(表达式)
但person.cfc
,controllers
中有一个services
。我不知道是否需要beans
文件夹。
我的问题是我应该为表单操作写什么,以及Framework1如何调用services文件夹中的文件来通过控制器运行insert语句?
答案 0 :(得分:1)
我有一种感觉,你可能会错过获得/设置为人员服务。还要确保您已经在beans.xml.cfm中声明了服务
<强>控制器/ person.cfc 强>
<cffunction name="setPersonService" access="public" output="false">
<cfargument name="personService" type="any" required="true" />
<cfset variables.personService = arguments.personService />
</cffunction>
<cffunction name="getPersonService" access="public" returntype="any" output="false">
<cfreturn variables.personService />
</cffunction>
<强>资产/配置/ beans.xml.cfm 强>
<bean id="personService" class="myapp.services.Person" singleton="true">
</bean>
编辑:哦,我刚刚意识到这个问题已在FW / 1小组上得到解答