1

jspページでコーディングすると問題が発生しました:

<body>
   <script>
      var a = "${testtesttest }"; 
   </script>    
</body>

「testtesttest」オブジェクトは間違いなく見つからないはずですが、何を返す必要がありますか? 公式ドキュメントでは、次のように述べています。

For example, when evaluating the expression ${product}, the container will look for       product in the page, request, session, and application scopes and will return its value. If product is not found, null is returned. 

http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html

null が返されると思っていましたが、私が望むなら質問はしません.. Firebug を介して、ブラウザでコンパイルした後のコードは次のとおりです。

<body>
   <script>
      var a = ""; 
   </script>
</body>

なぜnullではないのですか?? いったい結果はどうなるのか、私は混乱している..

4

2 に答える 2

1

${null}実際には空の文字列として出力されます。

EL仕様の1.18.2章の2番目のポイントも参照してください(A「任意のオブジェクト」を表します):

1.18.2 A を文字列に強制する

  • Aの場合String: 戻るA
  • Aそれ以外の場合null: 戻る""
  • そうでない場合AEnum、 を返しますA.name()
  • それ以外の場合A.toString()、例外をスローする場合、エラー
  • それ以外の場合は、戻るA.toString()

正確に何を求めているのか、答えを出すのは難しいです。実際に null を出力する場合、生成された JS コードはvar a = "null";とはまったく異なる のようになりvar a = null;ます。次に、引用符の有無にかかわらず、条件付きで JS 変数を出力する必要があります。また、これで最終的に何をしたいのか正確には不明です。おそらく、JS ブール値の魔法により、空の文字列の場合if (a)でも評価されることを知っておくと役に立ちます。false

于 2013-10-08T10:50:31.283 に答える
-1

取得の理由:

<body>
    <script>
        var a = ""; 
    </script>
</body>

それはあなたがするときです:

var a = "${testtesttest }";

実際に行っていること:

var a = "null";

何に変換されます:

var a = "";
于 2013-10-08T10:27:03.427 に答える