Вызов действия формы для вставки данных в базу данных в Framework 1

Я изучаю 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

и оператор вставки SQL в person.cfc с именем функции = savePerson в папке services.

В Application.cfc есть код

 function setupApplication() {

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

    setBeanFactory( bf );

 }

Когда я отправляю форму, я получаю сообщение об ошибке ниже

Исходное исключение в onRequest

Действие person.person не выполнено.

Элемент SERVICES.PERSON не определен в объекте Java класса типа [Ljava.lang.String; упоминается как ''

(Выражение)

но есть person.cfc в controllers, services. Я не знаю, нужна ли мне папка beans. Мой вопрос в том, что я должен написать для действия формы и как Framework1 будет вызывать файл в папке служб для запуска оператора вставки через контроллер?


person Ram    schedule 21.08.2014    source источник
comment
Вероятно, вам следует опубликовать это в группе Google FW/1 - groups.google.com/group/framework -один   -  person Miguel-F    schedule 22.08.2014
comment
хорошо спасибо за быстрый ответ   -  person Ram    schedule 22.08.2014
comment
Похоже, вы опубликовали это в группе Google FW/1. Вот ссылка на это - groups.google.com/forum/# !topic/framework-one/IUXOEVq9eSo   -  person Miguel-F    schedule 22.08.2014


Ответы (1)


У меня такое чувство, что вам может не хватать get/set для Person Service. Также убедитесь, что служба объявлена ​​в файле 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>

активы/config/beans.xml.cfm

<bean id="personService" class="myapp.services.Person" singleton="true">
</bean>

Редактировать: О, я только что понял, что на этот вопрос ответили в группах FW/1.

person Joey    schedule 29.08.2014