Спецификация портлета - обработка асинхронных многочастных запросов - PullRequest
1 голос
/ 26 января 2011

может кто-нибудь сказать мне, как правильно обрабатывать многокомпонентные http-запросы, которые не должны быть ActionRequest из-за их асинхронной природы?

Например, Ajax Multipart запрашивает флэш-загрузчики. Они не предназначены для запросов действий, потому что за фазой действия следует фаза рендеринга, верно? Как было бы удобно в случае html формы.

Некоторые фреймворки, такие как Spring, используют ResourceRequests для обработки распространенных Ajax-запросов, но ничего не сказано об обработке многокомпонентных запросов (в JSR 286).

Тогда остается фаза рендеринга, которая может быть использована для этого, но, похоже, она не верна. В spring-portlet-mvc в некоторых случаях это практически невозможно, поскольку ожидается, что на этапе рендеринга будет отображаться представление, а не асинхронно обрабатываться запросы.

В весенних рамках есть такие проблемы, с которыми я не знаю, как справиться

SPR-7662

SPR-7910

Последнее, что я хочу сделать, это то, что асинхронные запросы должны обрабатываться сервлетом, а не указывать на сервлет портала, чтобы он становился запросами портлета, что довольно раздражает и вызывает много дополнительной работы. Или, как в Spring-portlet-mvc, используйте ResourceRequests в качестве обходного пути.

1 Ответ

0 голосов
/ 27 января 2011

Ну, я уже объяснил этот вопрос здесь , в общих чертах.

На портале Liferay вы также должны указать параметр windowState = "exclusive" в вашем запросе на действие.

<portlet:actionURL var="actionURL" windowState="<%=LiferayWindowState.EXCLUSIVE.toString()%>" />

Это приводит к тому, что ответ не будет заключен в некоторые фрагменты html, которые в противном случае были бы необходимы в случае ответа рендеринга, который не возвращает необработанные данные, но некоторые представления (JSP) должны быть отображены.

...