2014-01-10 5 views
0

Я работаю на «миграции из JSP в FLEX и Java в качестве бэк-конец. Я новичок в Java и JSP.Получить значения HashMap из Java Servlet изгибаться

Я застрял на получение значения из Java . сервлет, где она принимает HttpRequest и есть функция, называемая forward(request,response), которая реагирует JSP страницы с requried значений в нем
Теперь мне нужно, чтобы изменить это и получить данные только из этого сервлета и использовать его в прогибаешься

проблема.:
case1: При использовании httpservice он принимает результат как строку, но не может получить объект.
case2: Если я использую RemoteObject, ему нужен метод в Java-сервлете, чтобы получить возвращаемое значение, которого нет в существующем сервлет.

Могу ли я получить предложения по этой проблеме.

Спасибо

+1

Если объект представляет собой список или карту, попробуйте изменить resultFormat на «array» и увидите, что вы вернулись с сервера. – matilu

ответ

1

case1: вы не используете вперед больше, вы можете настроить тип данных, которые вы хотите, чтобы вернуться, например:

response.setContentType("application/json"); 

... и возвращает данные в сервлета делается запись данных в поток, как:

PrintWriter out = response.getWriter(); 
out.print(object); 

но некоторое время назад, так как я это сделал, так что могут быть некоторые небольшие проблемы вам придется столкнуться ...

Вариант 2: Если вы используете сервлет, это правильно использовать HTTPService, RemoteObject не будет работать, он используется по-разному ....


Теперь, если я могу, я хотел бы предложить, что нужно с различного использования чем сервлеты - для получения данных с сервера Java в Flex - я люблю использовать GraniteDS.

Я просто сформулируем некоторые преимущества, которые я вижу, в случае, если вы заинтересованы:

Это легко установить: - в Java, вы просто добавить библиотеку graniteDS, два конфигурационных файлов (гранит + услуги- config xmls) добавить конфигурацию сервлета гранита в web.xml - в flex также есть библиотека гранита и services-config.xml

При настройке ее использование также легко и просто - у вас есть класс с методом (или простой bean-элемент или ejb) в Java, которые просто возвращают объект любого типа! И это все в Java

В flex, в этом случае вы используете RemoteObject, который вы вызываете только этим удаленным java-методом, а в обработчике результатов вы получаете свой DataGranite, который позаботится о сериализации + переносе + десериализации и просто даст вам объект (либо просто динамический {} или даже точный тип класса)

+0

Приносим извинения за ответ. С тех пор я был занят другим проектом и dint. Я хотел бы поблагодарить вас @user и matilu за помощь в решении этой проблемы. Еще раз спасибо. – user1647017