2011-03-01 2 views
0

안녕하세요 저는 서블릿에서 YUI 자바 스크립트 코드로 객체를 전달하려고합니다. 여기에 내가 통과 기꺼이 객체의 클래스 선언입니다 :서블릿을 통해 객체 전달 및 YUI에서 읽기

@XmlRootElement 
class Favourite implements Serializable { 
List<String> name = new ArrayList<String>(); 
List<String> host = new ArrayList<String>(); 
List<Integer> port = new ArrayList<Integer>(); 
} 

는 그리고 이것은 내가 서블릿을 통해 보내하려고하는 방법이다.

response.setContentType("application/x-java-serialized-object"); 
OutputStream os = response.getOutputStream(); 
ObjectOutputStream out = new ObjectOutputStream(os); 
Favourite data = new Favourite(); 
// some code to manipulate the "data" instance 
out.writeObject(data); 

YUI에서이 개체를 읽는 방법에 대해 혼란스러워합니다. 탈퇴를 제안하십시오.

답변

1

나는 Java serialization bytestream을 deserialize하기 위해 YUI를 사용할 수 있는지 의심 스럽다.

대신 JSON을 사용합니다. Favorite 인스턴스를 JSON 문자열에 직렬화하여 응답으로 전송하십시오 ("application/json"콘텐츠 유형 사용). 위의 링크를 포함하여 Java 용 JSON 인코더 (serializer/stringifiers)를 여러 개 찾을 수 있습니다. YUI는 JSON deserialization을 제공합니다.

JSON 또는 XML을 온 - 와이어 형식으로 사용하는 것은 웹 응용 프로그램에서 클라이언트와 서버간에 데이터를 (마크 업과는 대조적으로) 전송하는 가장 최신의 인기있는 방법입니다. 내 경험에 의하면, JSON은 사용하기 너무 쉽게 부분적으로 있기 때문에, XML을 약간 따라 잡고 있지만, XML은 사실, XML은 "아약스"  — 에서 X가 avascript 동기 J입니다 (첫 번째가 있었다 nd XML).

+0

내가 잘못하지 않았다면 Java 직렬화 된 객체를 Jquery에 전달하고이를 비 직렬화 할 수 있다고 생각하고 JQuery 또는 YUI를 사용하는 날씨를 제안합니다. –

+0

@aditya : 불쾌감은 없지만 당신이 틀렸다는 것을 확신합니다. 확실히 jQuery에 내장 된 자바 비 직렬화 지원은 없으며, 플러그인에 대해 들어 본 적이 없다. (기본) Java 직렬화 프로세스는 클라이언트 측 JavaScript에 전송되고 나서 직렬화 해제되는 데 적합하지 않은 2 진 데이터를 생성합니다. * 가능할 수도 있지만 원격 표준 연습은 아닙니다. Re YUI vs. jQuery : 전적으로 당신에게 달려 있습니다. jQuery는 아마 입양 측면에서 우위를 점하고 있으며 (Microsoft와의 관계에도 불구하고) 어떤 대기업과도 독립적입니다. –

+0

도움을 주셔서 감사합니다. JSON 개체를 만들어서 YUI에서 구문 분석 할 수있었습니다. –

0

YUI는 Java 직렬화 된 개체 (Java 특정 형식의 이진 데이터)를 읽을 수 없습니다. XML이나 JSON과 같은 JavaSCript에서 읽을 수있는 공개 형식을 사용하여 객체를 전송해야합니다.

+0

저를 도와주세요, 나는 유이가 처음이고 그것에 대해 거의 지식이 없습니다. XML 또는 JSON 형식으로 객체를 전송하면 어떻게 읽습니까? –

+0

JSON 및 YUI 용 http://developer.yahoo.com/yui/3/json/을 읽으십시오. AJAX를 수행하고 XML을 반환하는 경우 XML DOM 트리는 XMLHttpRequest의 responseXML 속성에서 사용할 수 있습니다. –

+1

당신이 AJAX 호출을하고 JSON 배열을 반환한다고 가정하면 http://jsfiddle.net/rbYKj/ (yui3 사용) – gmedina