ResourceRequest
がAJAXリクエストであるかどうかを調べる方法はありますか?ResourceRequestがAJAXリクエストであるかどうかを調べる
私たちはJBoss RichFaces 3.3.3,JBoss Portlet Bridge 2.1およびJava Portlet API 2.0を使用しています。
ResourceRequest
がAJAXリクエストであるかどうかを調べる方法はありますか?ResourceRequestがAJAXリクエストであるかどうかを調べる
私たちはJBoss RichFaces 3.3.3,JBoss Portlet Bridge 2.1およびJava Portlet API 2.0を使用しています。
return !StringUtils.isEmpty(request.getParameter("AJAXREQUEST"));
AJAXリクエストには、「XMLHttpRequest」に等しいX-Requested-Withという特別なヘッダーが付属しています。だから、クロスフレームワークの方法は次のようになります。
public static boolean isAjaxRequest(ResourceRequest request) {
String request_header = request.getProperty("X-Requested-With");
return (request_header!=null)&&(request_header.equalsIgnoreCase("XMLHttpRequest"));
}
問題は、一部のAjaxリクエストが異なり、これを実装する場合があります。このヘッダと異なるポータルコンテナなしで来るかもしれないです。
これはPortletRequest用のJavaドキュメントからです:
のgetProperty
指定された要求プロパティの値を返します
java.lang.StringでのgetProperty(java.lang.Stringで名)
ストリングとして。要求に指定された名前のプロパティが含まれていない場合、この メソッドはnullを返します。 この方法でポートレットはポータル/ポートレット・コンテナ の特定のプロパティにアクセスでき、可能であればHTTPクライアント要求のヘッダー も利用できます。