관리 메뉴

nkdk의 세상

XML파일로 불러오기 및 전송하기 #2 본문

My Programing/Flex&AIR

XML파일로 불러오기 및 전송하기 #2

nkdk 2008. 5. 28. 09:59

자 저번주에 이어서 하겠습니다.

HTTPServiceWithJSPOracleExample.mxml 을 만들겠습니다. 핵심이죠.

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="startApp()">
  <mx:Style>
    global{
      fontSize : 12;
    }
  </mx:Style>
  <mx:Script>
    <![CDATA[
      import mx.rpc.events.FaultEvent;
      import mx.rpc.events.ResultEvent;
      import mx.controls.Alert;
      import mx.utils.ObjectUtil;
      import flash.system.System;
      import mx.events.ListEvent
      import mx.rpc.http.HTTPService;

      private var httpService:HTTPService;
      private var DataGridItem:Object;
      private var memoVO:MemoVO;
     
      System.useCodePage = true;

      private function startApp():void
      {
        Helper('list');
      }

      private function Helper(method:String = "list"):void
      {
        httpService = new HTTPService();

        httpService.method = URLConfig.method;

       
        if (method == "list")
        {         
          dg.dataProvider = new Array();
          httpService.addEventListener(ResultEvent.RESULT , resultHandler);
          httpService.addEventListener(FaultEvent.FAULT , faultHandler);
          httpService.url = URLConfig.memoList;         
        }
       
        else if (method == "insert")
        {
          memoVO = new MemoVO();
          memoVO.subject = subject.text;
          memoVO.content = content.text;

          httpService.addEventListener(ResultEvent.RESULT , refreshHandler);
          httpService.url = URLConfig.menoInsert;
          httpService.request = memoVO;         
        }
        else if (method == "update" || method == "delete")
        {
       
          memoVO = new MemoVO();
          memoVO.idx = DataGridItem.idx;
          memoVO.subject = subject.text;
          memoVO.content = content.text;

          httpService.addEventListener(ResultEvent.RESULT , refreshHandler);
          httpService.url = method == "update" ? URLConfig.menoUpdate : URLConfig.menoDelete;
          httpService.request = memoVO;
        }

        httpService.send();
      }

     
      private function resultHandler(event:ResultEvent):void
      {
          dg.dataProvider = event.result.entries.entrie;
          dg.executeBindings();
      }

     
      private function faultHandler(event:FaultEvent):void
      {
        Alert.show(event.message.toString(), "error");
      }

     
      private function refreshHandler(event:ResultEvent):void
      {
        Helper('list');
      }

     
      private function itemClickEvent(event:ListEvent):void
      {
        DataGridItem = new Object();
        DataGridItem = event.target.selectedItem;
        subject.text = DataGridItem.subject;
        content.text = DataGridItem.content;
      }
    ]]>
  </mx:Script>
  <mx:Panel title="HTTPService with PHP" layout="horizontal" paddingLeft="10" paddingRight="10" paddingBottom="10" paddingTop="10" width="500" height="300">
    <mx:VBox width="100%" height="100%">
      <mx:DataGrid id="dg"
        width="100%" height="100%"
        itemClick="itemClickEvent(event)">
        <mx:columns>
          <mx:DataGridColumn dataField="idx" headerText="Num" width="45"/>
          <mx:DataGridColumn dataField="subject" headerText="Title"/>
          <mx:DataGridColumn dataField="regDate" headerText="Dates"/>
        </mx:columns>
      </mx:DataGrid>
      <mx:Button label="refresh" width="100%" click="Helper('list')" />
    </mx:VBox>
    <mx:VRule height="100%" />
    <mx:VBox width="100%" height="100%">
      <mx:VBox width="100%">
        <mx:Label text="Title" />
        <mx:TextInput id="subject" width="100%" />
      </mx:VBox>
      <mx:VBox width="100%" height="100%">
        <mx:Label text="content" />
        <mx:TextArea id="content" width="100%" height="100%"/>
      </mx:VBox>
      <mx:HBox width="100%">
        <mx:Button label="Insert" width="100%" click="Helper('insert')" />
        <mx:Button label="Modify" width="100%" click="Helper('update')" />
        <mx:Button label="Del" width="100%" click="Helper('delete')" />
      </mx:HBox>
    </mx:VBox>
  </mx:Panel>
</mx:Application>

이렇게 작성을 하시면 됩니다. 메모 추가 삭제 수정 리스트뿌리기 부분에 대해서는 여기 까지가 되겠네요.
jsp파일 작성은 알아서 잘 하시면 되긴 하는데 형식이 다음과 같이 뿌려져야 합니다.


<entries><entrie><idx>1<idx><subject>울랄라</subject><content>반갑습니다.</content></entrie></entries>

이런 형식으로 나오면 됩니다. 물론 위에다가 xml형식을 지정해 주시고요. 이 자료 넣고 테스트 해봐도 되겠네요.
URLConfig.as 파일을 잘 고쳐 보세요.