首頁 > ColdFusion, FLEX > FLEX on ColdFusion , CF 接收 ArrayCollection

FLEX on ColdFusion , CF 接收 ArrayCollection

2009年2月19日  瀏覽次數 : 1,820

驚 !! 難道 CF 不可以接收從 FLEX 丟過來的 ArrayCollection 嗎 !!??

image

錯誤資訊 : Unable to invoke CFC - The MYAC argument passed to the putArrayCollection function is not of type query.

話說今天看到一本國外原文新書 FLEX on Rails 那這樣子怎麼可以少個 FLEX on ColdFusion 呢 !

上次我在進行 FLEX AS3與ColdFusion進行Remoting = 資料庫篇 有提到 FLEX 與 ColdFusion 的資料型態轉換,我們在幫各位勾起回憶一下。

ColdFusion 資料型態 ActionScript 資料型態
String String
Array Array
Query ArrayCollection
Struct Object
CFC instance Strongly typed VO
Date Date
Numeric Number
XML Object XML Object

以上就是我們上次提到的 CF 與 AS 的資料型態的轉換,上面很明顯的提到 Query 與 ArrayCollection 是對等的資料型態,而我們在資料庫實作上也證明了 CFC 回傳一個 Query 而 FLEX 可以正確的使用一個 ArrayCollection 來做接收並且處理。

但是當我利用 FLEX 傳一個 ArrayCollection 錯發生了不可預期的錯誤。

錯誤碼 : Unable to invoke CFC - The MYAC argument passed to the putArrayCollection function is not of type query.

詳細錯誤資料 : If the component name is specified as a type of this argument, its possible that a definition file for the component cannot be found or is not accessible.

說的真是讓我一頭霧水阿,簡單的說就是收到的物件並不可以被轉型為 query ,這下子還真是頭大阿,寫個簡單的範例測試一下。

remotingArrayCollectionTest.mxml

1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()">
	<mx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			private function init():void{
				this.roArrayCollection.putArrayCollection(new ArrayCollection());
			}
		]]>
	</mx:Script>
	<mx:RemoteObject id="roArrayCollection" destination="ColdFusion" source="comp.arrayCollectionTest"/>
</mx:Application>

arrayCollectionTest.cfc

1
2
3
4
5
6
7
8
 
<cfcomponent>
	<cffunction name="putArrayCollection" access="public" returntype="string">
		<cfargument name="myAC" type="query" required="yes">
		<cfset myResult="ok">
		<cfreturn myResult>
	</cffunction>
</cfcomponent>

這樣接受的話你也會出現跟我一樣的錯誤碼了,既然 query 不能收,那該怎甚麼來收呢 ? 答案是 Array 我們將 CFC 程式碼修改如下 :

arrayCollectionTest.cfc

1
2
3
4
5
6
7
8
 
<cfcomponent>
	<cffunction name="putArrayCollection" access="public" returntype="string">
		<cfargument name="myAC" type="array" required="yes">
		<cfset myResult="ok">
		<cfreturn myResult>
	</cffunction>
</cfcomponent>

這段程式碼就可以被正常運行了,雖然我不瞭解為什麼無法用 Query 來接收 ArrayCollection 但是至少眼前的危機暫時解除了,希望如果有看到這篇的先知們可以幫忙解答一下,謝謝。

另外,當你很認真的看完這篇文章,我想代表你也對 ColdFusion 也頗有興趣或是正在用 ColdFusion 開發系統,雖然我用 CF 很少,也不太會用,但是我希望你可以留下你的資訊,大家做個交流,因為說實在的,雖然 CF 蠻好用的,但是有時候真是孤掌難鳴,想要找些資料都要在速度比較慢的國外網站搜尋,國內的 ColdFusion BLOG 似乎也都陣亡的差不多了,不知道我還能在吐幾篇跟 CF 有關的資料,也是蠻想轉戰 C# 了,看來勢在必行,畢竟我並不在 104 人力銀行上班,沒有那麼多倒入 ColdFusion 的前輩可以提點,謝謝。

Random Posts

Loading…

:: 把這篇好文推到書籤網站與更多人分享吧 ::
  • funp
  • Hemidemi
  • YahooKimo
  • Google
  • udn
  • Haohao
  • Live

相關文章 :

Ausir ColdFusion, FLEX , , ,

  1. 2009年2月25日13:20 | #1

    你在我網誌上留過言 http://www.wretch.cc/blog/fongyoung/
    我的msn WLM是 — 已加密 –

    ArrayCollection我沒試過從Flex搬去CF 可是你如果轉成array的話,就很容易了.

  2. 2009年2月25日13:24 | #2

    基本上不用轉 ARRAY 也可啦 ^^ 反正 ArrayCollection 硬丟過去接收的時候就要用 Array 來讀資料了。

    很高興可以認識你 ^^

  3. 2009年2月25日13:54 | #3

    喔我寫錯了
    是jonathan.fong@missoni.com.tw

  4. 2009年2月25日13:56 | #4

    難怪我想說都加不到人 XD

  5. 2009年2月25日13:57 | #5

    我也很高興認識你 真的 孤掌難鳴 這四個字說的太好了

  6. 2009年2月25日13:59 | #6

    我上班不能用msn 下班才會用 有什麼事情問題等等都可以mail到我的信箱 jonathan@cfsoho.com

  7. 2009年2月25日13:59 | #7

    我已經暫時投靠 PHP 陣營了 , 不過 CF 仍然會在我心中長存的~ , 君不見三國鼎立時代早已過去 。

  8. 2009年2月25日14:00 | #8

    M~ ^_^ 有機會交流交流~ 沒事可以複習一下 CF

  9. 2009年2月25日14:17 | #9

    php都要在裡寫 不過癮

  10. 2009年2月25日14:18 | #10

    在裡寫? 不太懂~ 呵呵

  11. 2009年2月25日14:20 | #11

    如果不嫌棄我以後可以在你的部落格轉載我的文章 最近也想開部落格 可是部落格都不可以寫< >

  12. 2009年2月25日14:20 | #12

    PHP都要在<% >裡面寫 我的大於小於符號被蓋住了

  13. 2009年2月25日14:21 | #13

    可以阿 沒有問題~

    反正我快變出不出新把戲了 XD

  14. 2009年2月25日14:22 | #14

    你是說 PHP 要寫

    ? 的標籤嗎

    這種標籤嗎? 是有點麻煩
    但是習慣寫 CLASS 到是無所謂

  15. 2009年2月25日14:42 | #15

    你是怎麼接觸到cf 幾年了? 當初是為什麼接觸cf?

  16. 2009年2月25日14:48 | #16

    第一次接觸到 CF 是 2003 還 2004 的事情了,當初看到一個網站 溫哥華華人網 但是這個網站現在好像已經死掉了 , 在當初接觸到他副檔名寫 .cfm 才了解到 coldfusion ,不過真的接觸到是用 CF8 ,因為寫 ASP 與 JSP 對於那種用引號包來包去的寫法混雜在 HTML 標籤內實在很感冒,所以轉向用 CF TAG ,某部分來說速度蠻快的,不過另一方面也是少了點彈性,當然最大的問題還是支援找不到,以軍隊來說的話沒有支援後勤,根本沒辦法打仗阿 !

  17. 2009年2月25日14:50 | #17

    我是大約六七年前開始寫的 是我哥介紹我cf 因為他在美國的ups上班 ups的內勤都是用cf寫的。

    然後我就一路寫cf4.5寫到8

  18. 2009年2月25日14:52 | #18

    據消息得知,台灣的 104 人力銀行 CFM 也是招募新血也是頭痛,不知道幾時候會轉向 PHP 陣營,所以您是老前輩啦,可以提供不少知識,你現在也是在 CF 相關的公司上班嗎?

  19. 2009年2月25日14:56 | #19

    是ㄚ 104之前也找過我 其實一般新手要學cf上手只需要兩個禮拜就好了 他門可以招募一些asp的人 asp的人如果看到cf是這麼寫一定很恨微軟

    你知道微軟當初開發asp的人都是挖allaire的人ㄋㄟ

  20. 2009年2月25日15:01 | #20

    雖然兩個禮拜可以學會標準且基礎的 CF ,但是一些特殊用法,或是一些好用的 TAG 在台灣根本連一本書沒寫呢 , 所以我也不知道該怎麼用下去 哈哈,不過還是要看開發來決定啦,不過語言就是這樣,除非真的老手,不然用 CF 我覺得真的沒比較快 XD

  21. 2009年2月25日15:58 | #21

    ㄝ 我找個文章給你讀一讀

    這是二月十一號的文章: 一個小試驗 老師叫幾組學生用不同的程式語言寫一套程式,結果cf的學生第一個寫完 還多加了flex頁面

    http://co.ldfusion.com/index.cfm/2009/2/11/ColdFusion-Is-Dead

  22. 2009年2月25日16:21 | #22

    不過撰寫速度這種東西,還是跟經驗累積有差異的,假如是簡單的東西,大家都可以寫出來的,那可能以簡化 TAG 方式來寫最快,但是如果是需要蒐尋資料的,尤其是在學習階段或是資源分享階段,CF 完全輸了。

  1. 本篇文章目前尚無任何 trackbacks 和 pingbacks。