-1

だから私は2つの変数を持っています。1 つは JavaScript で記述され、もう 1 つは jsp のスクリプトレットで記述されています。どちらも文字列で、印刷すると両方とも「4」の値になります。私が .getClass() を実行すると、それらは両方とも文字列クラスですが、.equals() であるかどうかを尋ねて印刷すると、そうであったとしても (文字列には正しくないことがわかっています) == false と出力されます。

これらは私の変数とその宣言方法です。

String showingValue = "<script>document.writeln(selectedCopyValue)</script>";

String val4 = "4";

selectedCopyValue は、上記の JavaScript で記述された変数です。これは次のように宣言されています (テスト用にハードコードされているため)。

String selectedCopyValue = "4";

では、なぜ私が次のような大規模なことをするとき:

out.print(val4.trim().toString().equals(showingValue.trim().toString()));

それはfalseを出力しますか?

4

1 に答える 1

4

を印刷するshowingValueと、ブラウザーはスクリプトを実行し、4 を表示します。文字列を比較するとき、スクリプトは実行されないため、文字通り文字列を比較します。

"4"等しくない"<script>document.writeln(selectedCopyValue)</script>"

于 2013-06-13T19:16:33.880 に答える