URLのクエリパラメータにアクセスするには、次の3つの方法を使用しています。
JSP
String success = request.getParameter("success");
if(success!=null) {
//do something
}
JSTL
<c:if test="${not empty param.success}">
//do something
</c:if>
JavaScript
function getQueryParameter ( parameterName ) {
var queryString = window.top.location.search.substring(1);
var parameterName = parameterName + "=";
if ( queryString.length > 0 ) {
begin = queryString.indexOf ( parameterName );
if ( begin != -1 ) {
begin += parameterName.length;
end = queryString.indexOf ( "&" , begin );
if ( end == -1 ) {
end = queryString.length
}
return unescape ( queryString.substring ( begin, end ) );
}
}
return "null";
}
これらの3つすべてが私にとってはうまくいきますが、これらのいずれかに問題があるかどうか、そしてどちらが優先されるかを知りたいですか?
最初のアプローチでは、スクリプトレットを使用してリクエストパラメータにアクセスしていますが、確実に機能しますが、nullについて追加のチェックを行う必要があります。したがって、スクリプトレットは常に回避されます。
JSTLを使用する2番目のアプローチでは、最初のアプローチよりも優れています。スクリプトレットよりも洗練されたバージョンで、柔軟性と堅牢性が向上します。したがって、これは常に推奨されることです。 これは3つの方法のベストアプローチです。
最後のアプローチでは、JavaScriptを使用していますが、別の方法です。しかし、決して奨励されていません。 paramsを慎重に処理するための特別な注意が必要であり、同じ作業を行うためのより良いオプションがあります。 JavaScriptがそれを処理するための理想的なタスクではありません!