Olá Pessoal do Grupo, tudo bem com todos?! Bom, espero que sim... rs..

Eu sou iniciante no desenvolvimento com a tecnologia Flex e gostaria
de tirar algumas dúvidas.

Eu preciso fazer uma aplicação desenvolvida em Java Web (Struts)
trocar informações com uma aplicação em Flex. Pensei em utilizar, para
realizar essa "conversa", xml, pois desta forma seria possível
utilizar HTTPService e não RemoteObject.

Vou descrever o que eu fiz e em que pé eu estou:
- Criei uma aplicação Java Web, utilizando o Struts, para teste antes
de integrar definitivamente na minha aplicação.
- Criei duas classes de modelo (Aluno e Imagem) e uma Action que, ao
ser chamada, retorna um xml.
- Minhas classes tem a seguinte estrutura:
Aluno
     - id (String)
     - nome (String)
     - dataNascimento (String)
     - imagens (ArrayList de objetos Imagem)

Imagem
     - nome (String)
     - descricao (String)
     - caminho (String)

A idéia aqui é que um Aluno pode "postar" várias imagens nesta
aplicação e eu quero exibir e mostrá-las depois dentro do flex.
O XML que a minha aplicação retorna está apresentado assim quando
executo pelo browser:

----- INÍCIO DO XML APRESENTADO NO BROWSER (apenas para informação)
-----
<list>
  <Aluno>
    <id>001</id>
    <nome>José</nome>
    <dataNascimento>01/01/2001</dataNascimento>
    <imagens>
      <Imagem>
        <nome>Campo</nome>
        <descricao>Foto que retrata o campo</descricao>
        <caminho>http://localhost:8084/StrutsFlex/images/
imagem001.png</caminho>
      </Imagem>
      <Imagem>
        <nome>Natureza</nome>
        <descricao>Cachoeiras</descricao>
        <caminho>http://localhost:8084/StrutsFlex/images/
imagem002.png</caminho>
      </Imagem>
      <Imagem>
        <nome>Relaxar</nome>
        <descricao>Praias</descricao>
        <caminho>http://localhost:8084/StrutsFlex/images/
imagem003.png</caminho>
      </Imagem>
    </imagens>
  </Aluno>
  <Aluno>
    <id>001</id>
    <nome>Maria</nome>
    <dataNascimento>01/01/2001</dataNascimento>
    <imagens>
      <Imagem>
        <nome>Ser Criança</nome>
        <descricao>Carrinhos e Casinha de Boneca</descricao>
        <caminho>http://localhost:8084/StrutsFlex/images/
imagem004.png</caminho>
      </Imagem>
      <Imagem>
        <nome>Alegria</nome>
        <descricao>Os Palhaços</descricao>
        <caminho>http://localhost:8084/StrutsFlex/images/
imagem005.png</caminho>
      </Imagem>
      <Imagem>
        <nome>O Pouco Tempo</nome>
        <descricao>Uma avenida movimentada por pessoas que não estão
lá</descricao>
        <caminho>http://localhost:8084/StrutsFlex/images/
imagem006.png</caminho>
      </Imagem>
    </imagens>
  </Aluno>
</list>
----- FIM    DO XML APRESENTADO NO BROWSER (apenas para informação)
-----

Isso tudo está sendo feito do lado do JAVA. A geração do XML através
do java é feita utilizando a API XStream, conforme vi na aplicação
Hotel - Struts 2 + Flex ( http://www.flexdev.com.br/hotel/flex/bin/index.html
).

Agora vou explicar o que eu tentei fazer no flex.
Criei uma aplicação e coloquei o seguinte código para a chamada a
Action do Struts.

A configuração do <mx:HTTPService>

<mx:HTTPService id="listAlunos" url="http://localhost:8084/StrutsFlex/
alunos/carregaAlunos.do"
        result="loadAlunos(event)" fault="onErro(event)"
        useProxy="false" showBusyCursor="true" />

Minhas funções declaradas dentro do bloco <mx:Script>

public function loadAlunos(event:ResultEvent):void {
        alunosStruts = new
ArrayCollection(ArrayUtil.toArray(event.result.list));
        textoSaida.text = ObjectUtil.toString(event.result.list);
}

public function onErro(event:FaultEvent):void{
        Alert.show( ObjectUtil.toString(event.fault));
}

E por fim, a forma como, apenas neste momento e para teste, estou
mandando "imprimir" pelo menos um valor, analisando se deu certo ou
não:

        <mx:Form>
                <mx:Repeater id="aluno" dataProvider="{alunosStruts}">
                        <mx:Label 
text="{ObjectUtil.toString(aluno.currentItem.nome)}"/>
                </mx:Repeater>
        </mx:Form>

No entanto, neste objeto Label não está sendo impresso nada. E eu não
estou entendendo o porque, mesmo que eu coloque no text:
aluno.currentItem.Aluno.nome, o valor também não aparece.
Creio que eu estou errando na hora de "mapear" a resposta do XML, mas
acheio meio confuso. Ou seria melhor eu utilizar algum outro objeto?!

Pessoal, desculpem essa mensagem imensa. Mas grande parte são os XMLs
utilizados.

Gostaria de agradecer imansamente mesmo a atenção de todos para com o
meu problema.

Muito obrigado, desde já, pessoal.

Atenciosamente,

Júnior


----- ABAIXO SEGUE O XML COMPLETO APRESENTADO EM UM OBJETO TEXT NO
FLEX (apenas para informação) -----
(Object)#0
  Aluno = (mx.collections::ArrayCollection)#1
    filterFunction = (null)
    length = 2
    list = (mx.collections::ArrayList)#2
      length = 2
      source = (Array)#3
        [0] (Object)#4
          dataNascimento = "01/01/2001"
          id = "001"
          imagens = (Object)#5
            Imagem = (mx.collections::ArrayCollection)#6
              filterFunction = (null)
              length = 3
              list = (mx.collections::ArrayList)#7
                length = 3
                source = (Array)#8
                  [0] (Object)#9
                    caminho = "http://localhost:8084/StrutsFlex/images/
imagem001.png"
                    descricao = "Foto que retrata o campo"
                    nome = "Campo"
                  [1] (Object)#10
                    caminho = "http://localhost:8084/StrutsFlex/images/
imagem002.png"
                    descricao = "Cachoeiras"
                    nome = "Natureza"
                  [2] (Object)#11
                    caminho = "http://localhost:8084/StrutsFlex/images/
imagem003.png"
                    descricao = "Praias"
                    nome = "Relaxar"
                uid = "6B05EB6E-015D-2A17-5CCE-6CE5E75646D4"
              sort = (null)
              source = (Array)#8
          nome = "José"
        [1] (Object)#12
          dataNascimento = "01/01/2001"
          id = "001"
          imagens = (Object)#13
            Imagem = (mx.collections::ArrayCollection)#14
              filterFunction = (null)
              length = 3
              list = (mx.collections::ArrayList)#15
                length = 3
                source = (Array)#16
                  [0] (Object)#17
                    caminho = "http://localhost:8084/StrutsFlex/images/
imagem004.png"
                    descricao = "Carrinhos e Casinha de Boneca"
                    nome = "Ser Criança"
                  [1] (Object)#18
                    caminho = "http://localhost:8084/StrutsFlex/images/
imagem005.png"
                    descricao = "Os Palhaços"
                    nome = "Alegria"
                  [2] (Object)#19
                    caminho = "http://localhost:8084/StrutsFlex/images/
imagem006.png"
                    descricao = "Uma avenida movimentada por pessoas
que não estão lá"
                    nome = "O Pouco Tempo"
                uid = "AF347D7C-3DA9-4A1B-643E-6CE5E756800D"
              sort = (null)
              source = (Array)#16
          nome = "Maria"
      uid = "4ABBE8C9-DCA3-3516-E9A6-6CE5E7569C24"
    sort = (null)
    source = (Array)#3
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a