1

我正在学习 Framework1,并尝试做一个简单的 ColdFusion 程序,在提交表单后将数据插入数据库。

我的简单形式person.cfmviews/main

<form name = "savePerson" action="#buildurl('person')#" method="post">

在表单动作中我把控制器person.cfc

person.cfccontrollers组件中有代码的文件夹

<cffunction name="person">
  <cfif isDefined("rc.savePerson")>
    <cfset variables.services.person.savePerson()>
  </cfif>
</cffunction

和 SQL 插入语句 in person.cfcwith function name =savePersonservices文件夹中。

Application.cfc 有代码

 function setupApplication() {

    var bf = new framework.ioc( "services" );

    setBeanFactory( bf );

 }

当我提交表单时,我收到以下错误

onRequest 中的原始异常

操作 person.person 失败。

SERVICES.PERSON 元素在类 [Ljava.lang.String; 类型的 Java 对象中未定义;引用为 ''

(表达)

但有一个person.cfcin controllers, services. 我不知道我是否需要一个beans文件夹。我的问题是我应该为表单操作编写什么以及 Framework1 如何调用服务文件夹中的文件以通过控制器运行插入语句?

4

1 回答 1

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 组中得到了回答

于 2014-08-29T04:03:35.697 回答