Выяснение, является ли ResourceRequest запросом AJAX - PullRequest
1 голос
/ 27 февраля 2012

Есть ли способ узнать, является ли ResourceRequest запросом AJAX?

Мы используем JBoss RichFaces 3.3.3, JBoss Portlet Bridge 2.1 и Java Portlet API 2.0 .

Ответы [ 2 ]

1 голос
/ 27 февраля 2012
return !StringUtils.isEmpty(request.getParameter("AJAXREQUEST"));
0 голосов
/ 27 марта 2012

AJAX-запрос поставляется со специальным заголовком, называемым X-Requested-With, который должен равняться «XMLHttpRequest».Таким образом, кросс-фреймворк может быть:

public static boolean isAjaxRequest(ResourceRequest request) {
   String request_header = request.getProperty("X-Requested-With");
   return (request_header!=null)&&(request_header.equalsIgnoreCase("XMLHttpRequest"));
}

Проблема в том, что некоторые запросы Ajax могут поступать без этого заголовка, и разные контейнеры портала могут реализовывать это по-разному.

Это из документа Java дляPortletRequest:

getProperty

java.lang.String getProperty (java.lang.String name)

Возвращает значение указанного свойства запроса в виде строки.Если в запросе не указано свойство с указанным именем, этот метод возвращает значение null.С помощью этого метода портлет может обращаться к определенным свойствам портала / контейнера портлета и, если доступно, к заголовкам клиентского запроса HTTP.

...