HTTPService ile Flex’den JSP’ye Veri Gönderme ve Okuma

9 Kasım 2008 Pazar

RIA (Zengin İnternet Uygulamaları - Rich Internet Applications) deyince aklımıza ilk gelen geliştirme ortamı Flex’dir. Aşağıdaki örnekte Flex’den herhangi bir web programlama diline (biz örneğimizde JSP’yi kullanacağız) HTTPService ile veri gönderilmesini ve alınmasını açıklamaya çalışacağız. Öncelikle örneğimiz iki bölümden oluşacaktır. İlk bölüm Flex, ikincisi ise JSP dir.

Aşağıdaki örnekte; Flex ile oluşturulacak bir formdan, kişilere ait Ad, Yaş ve Meslek bilgileri alınacak, bu bilgiler bir JSP dosyaya POST edilecek. JSP’den de bu veriler alınacak ve XML formatında bir çıktı üretilerek, bu girilen veriler ve birkaç örnek veri Flex’e döndürülecektir.

Flex Kodu;

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”>

<mx:Script>
<![CDATA[
import mx.events.ValidationResultEvent;
import mx.controls.Alert;

private function validateEmpName():void {

if (empNameValidator.validate().type == ValidationResultEvent.VALID) {
submitForm();
}
else {
Alert.show("Kişi Adı Boş Olamaz");
}
}

private function submitForm():void {
employees.cancel();
employees.send(employeeModel);
}

private function onResult(event:Event):void {
return;
}

]]>
</mx:Script>

<mx:Model id=”employeeModel”>
<root>
<ad>{kisiAd.text}</ad>
<yas>{yas.text}</yas>
<meslek>{meslek.text}</meslek>
</root>
</mx:Model>

<mx:HTTPService id=”employees” useProxy=”false” method=”POST” url=”http://localhost:8080/jfx/employee.jsp” />

<mx:DataGrid dataProvider=”{employees.lastResult.kisiler.kisi}”>
<mx:columns>
<mx:DataGridColumn dataField=”ad” headerText=”Ad” />
<mx:DataGridColumn dataField=”yas” headerText=”Yaş”/>
<mx:DataGridColumn dataField=”meslek” headerText=”Meslek”/>
</mx:columns>
</mx:DataGrid>

<mx:StringValidator id=”empNameValidator” source=”{kisiAd}” property=”text” triggerEvent=”" />

<mx:Form width=”100%” height=”100%” x=”50″ y=”400″>
<mx:FormItem label=”Kişi Adı” required=”true”>
<mx:TextInput id=”kisiAd” />
</mx:FormItem>
<mx:FormItem label=”Yaş”>
<mx:TextInput id=”yas” />
</mx:FormItem>
<mx:FormItem label=”Meslek”>
<mx:TextInput id=”meslek” />
</mx:FormItem>
<mx:Button label=”Kişi Ekle” click=”validateEmpName()”/>
</mx:Form>

</mx:Application>

JSP Kodu;

<%
String calisanlar=”<?xml version=\’1.0\’ encoding=\’UTF-8\’?><kisiler><kisi><ad>Ahmet Can</ad><yas>22</yas><meslek>Avukat</meslek></kisi><kisi><ad>Cem Cemal</ad><yas>21</yas><meslek>Polis, Hemsire</meslek></kisi><kisi><ad>Ayse Pala</ad><yas>30</yas><meslek>Esnaf</meslek></kisi>”;
String name=request.getParameter(”ad”);
String age=request.getParameter(”yas”);
String skills=request.getParameter(”meslek”);
String FlexdenGelenler =”<kisi><ad>” + name+ “</ad><yas>” + age + “</yas><meslek>”+ skills +”</meslek></kisi>”;

if (name == null){
out.println(calisanlar+”</kisiler>”);
}else{
out.println(calisanlar + FlexdenGelenler + “</kisiler>”);
}
%>

Yukarıdaki örnekte, JSP dosyayı sunucudaki bir klasöre kopyalayın ve tarayıcıdan çağırdığınızda çalışıp çalışmadığını kontrol edin, eğer çalışıyorsa bu dosyanın adresini Flex’deki HTTPService bileşenindeki url parametresine yazın.

Flex içinden girilen bilgiler JSP dosyaya post edilmekte ve JSP ile de bir XML çıktı üretilmektedir. Flex tarafında üretilen bu çıktı, bir datagrid içerisinde görüntülenmektedir.

Kaynak:http://neoflex.wordpress.com/2007/11/20/sending-data-from-flex-to-jsp-using-httpservice/

Veli Akçakaya
Bilgisayar Öğretmeni
Yazılım Uzmanı
Bu yazıya yorum ekleyebilirsiniz veya kendi web sitenize geri izleme olarak ekleyebilirsiniz.

Yorum Ekleyin