表单操作调用将数据插入到框架1中的数据库

时间:2014-08-21 18:55:16

标签: coldfusion fw1

我正在学习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.cfccontrollers中有一个services。我不知道是否需要beans文件夹。 我的问题是我应该为表单操作写什么,以及Framework1如何调用services文件夹中的文件来通过控制器运行insert语句?

1 个答案:

答案 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小组上得到解答