2012-02-27 29 views

答えて

1
return !StringUtils.isEmpty(request.getParameter("AJAXREQUEST")); 
0

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クライアント要求のヘッダー も利用できます。

関連する問題