我有一个flex web应用程序,它要求servlet和servlet发送一个arraylist。我在结果事件中获得了字符串中的数据。我想在flex结束时获取arraycollection。我应该怎么做。同时请让我知道,是否可以按照我的方式完成?波纹管是代码从servlet获取对象flex
柔性结束:
package
{
[Bindable]
[RemoteClass(alias="com.rit.test.java.model.Employee")]
public class Employee
{
private var id:int;
private var name:String;
private var address:String;
private var salary:int;
public function setId(_id:int):void
{
this.id = _id;
}
public function getId():int
{
return this.id;
}
public function setName(_name:String):void
{
this.name = _name;
}
public function getName():String
{
return this.name;
}
public function setAddress(_address:String):void
{
this.address = _address;
}
public function getAddress():String
{
return this.address;
}
public function setSalary(_sal:int):void
{
this.salary = _sal;
}
public function getSalary():int
{
return this.salary;
}
public function Employee()
{
}
}
}
的Java servlet类:
package com.rit.test.java;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import flex.messaging.io.ArrayCollection;
import flex.messaging.io.amf.translator.ASTranslator;
import com.rit.test.java.model.Employee;
/**
* Servlet implementation class TestServlet
*/
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private ArrayList<Employee> list = new ArrayList<>();
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
populateList();
ASTranslator ast = new ASTranslator();
out.println(ast.convert(list, ArrayCollection.class));
out.flush();
}
private void populateList(){
Employee emp = new Employee();
emp.setId(1);
emp.setName("Benay");
emp.setAddress("chinar park");
emp.setSalary(100);
list.add(emp);
emp = new Employee();
emp.setId(2);
emp.setName("Debarghya");
emp.setAddress("baguihati");
emp.setSalary(70);
list.add(emp);
emp = new Employee();
emp.setId(3);
emp.setName("Debarshi");
emp.setAddress("garia");
emp.setSalary(60);
list.add(emp);
emp = new Employee();
emp.setId(4);
emp.setName("Tamal");
emp.setAddress("howrah");
emp.setSalary(50);
list.add(emp);
emp = new Employee();
emp.setId(5);
emp.setName("Sanket");
emp.setAddress("keshtopur");
emp.setSalary(40);
list.add(emp);
}
}
object class in java end:
package com.rit.test.java.model;
public class Employee {
private int id;
private String name;
private String address;
private int salary;
public void setId(int _id)
{
this.id = _id;
}
public int getId()
{
return this.id;
}
public void setName(String _name)
{
this.name = _name;
}
public String getName()
{
return this.name;
}
public void setAddress(String _address)
{
this.address = _address;
}
public String getAddress()
{
return this.address;
}
public void setSalary(int _sal)
{
this.salary = _sal;
}
public int getSalary()
{
return this.salary;
}
}
我在弯曲结束了警报是在柔性结束
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
import mx.utils.ObjectUtil;
protected function callBackEnd(event:MouseEvent):void
{
var params:Object = {name: 'debarshi',password:'banerjee'};
rawFileServlet.send(params);
rawFileServlet.addEventListener(ResultEvent.RESULT,onResult);
}
private function onResult(ev:ResultEvent):void
{
Alert.show(ObjectUtil.toString(ev.result));
}
]]>
</fx:Script>
<fx:Declarations>
<s:HTTPService url="http://192.168.1.66:8484/HelloWorldServlet/TestServlet"
id="rawFileServlet"
method="POST"
showBusyCursor="true"/>
</fx:Declarations>
<s:Button click="callBackEnd(event)" label="Click"/>
</s:Application>
Object类: “[[email protected],[email protected],com.rit.test .java.model.Employee @ 10df737,[email protected],[email protected]]
“
我增加了五场大火DS .jar文件放在我的java lib文件夹中(flex-messaging-common,flex-messaging-core,flex-messaging-opt,flex-messaging-proxy,flex-messaging-remoting)。使用这五个.jar文件,我将其转换为java中的flex arraycollection并发送。这是我可以接近的正确方法吗?请帮忙
你需要使用'services-config.xml'和'remoting-config.xml'! – NINCOMPOOP 2013-05-13 10:09:37
从本教程开始:http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=lcoverview_4.html – NINCOMPOOP 2013-05-13 10:10:32
我已经在java端的WEB-INF下有flex文件夹。一切都按预期设定。我没有设置任何,因为在flex端没有指定remoteobject。我只是做一个简单的servlet调用。 –
2013-05-13 10:17:23