1

ASP 用のサーバー側 JS で書かれた他の人のコードを編集していて、おそらく非常に簡単な解決策がある問題に遭遇しました。

次のような URL パラメータからいくつかのコードを出力しています。

<%=Request.QueryString("param")%>

問題は、パラメーターが存在しない場合、何か他のことをする必要があることです。だから私は試しました:

<% 
  var param = Request.QueryString("param");
  if (!param) { param = "Some Default Value"; }
%>
<%=param%>

問題は、URL パラメータが欠落している場合でも、 がifに評価されないように見えることです。ここでは条件がうまくいかないtrueと思います。!image私のテスト条件は何ですか?

(XSS を防ぐために URL パラメーターをエスケープすることについての厳しい警告は無視してください。)

4

3 に答える 3

5

クエリ文字列パラメーターが存在するかどうかを確認する正しい方法は、Countプロパティを使用することです。

<% 
  var param = Request.QueryString("param");
  if (param.Count === 0) { param = "Some Default Value"; }
%>
<%=param%>

のドキュメントによるとRequest.QueryString

Request.QueryString( parameter ) の値は、QUERY_STRING で発生する parameter のすべての値の配列です。

それがおそらく単純なif (!param)チェックが機能しない理由です。

于 2012-03-26T07:51:37.827 に答える
2

これが私がすることです。

function qs(name) {
    var v = Request.QueryString(name),
        v2 = "x" + v + "x";
    if ((v2=="xundefinedx") && (v != "undefined")) {
        return null;
    }
    return v + ''; // force string
}
于 2012-03-26T01:04:55.117 に答える
-1

JSPgetParameterでは、代わりにを使用する必要がありますQueryString

JSPのコードは次のようになります

<% 
  String param = request.getParameter("param");
  if (param.length() == 0) { param = "Some Default Value"; }
%>
于 2010-10-11T19:15:35.117 に答える