26

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つすべてが私にとってはうまくいきますが、これらのいずれかに問題があるかどうか、どれが優先されるかを知りたいですか?

4

1 に答える 1

16

最初のアプローチでは、スクリプトレットを使用してリクエスト パラメータにアクセスしていますが、間違いなく機能しますが、null の追加チェックを行う必要があります。したがって、スクリプトレットは常に回避されます。

JSTL を使用する 2 番目のアプローチは、最初のアプローチより優れており、スクリプトレットよりも洗練されたバージョンであり、柔軟性と堅牢性が向上します。ですから、それは私たちが常に奨励するものです。これは、3 つの中で最良のアプローチです。

最後のアプローチでは、別の方法で Javascript を使用します。しかし決して励まされませんでした。パラメータを慎重に処理するには細心の注意が必要であり、同じ仕事をするためのより良いオプションがあります。Javascript がそれを処理するのは理想的なタスクではありません!

于 2012-10-25T06:28:13.163 に答える