-1

所以我有2个变量。一个是用 javascript 编写的,另一个是用 jsp 的 scriplet 编写的。它们都是字符串,当我打印它们时它们的值都是“4”。当我执行 .getClass() 时,它们都是字符串类,但是当我打印出来询问它们是否是 .equals() 或者即使我这样做(我知道这对于字符串不正确)== 它打印出错误。

这些是我的变量以及它们是如何声明的。

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

String val4 = "4";

selectedCopyValue 是上面用 javascript 编写的变量。它被声明为(现在因为它被硬编码用于测试):

String selectedCopyValue = "4";

那么,为什么当我做一些甚至如此广泛的事情时:

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

它打印出来是假的吗?

4

1 回答 1

4

当您 printshowingValue时,浏览器执行脚本并显示 4。当您比较字符串时,它不执行脚本,因此它从字面上比较字符串:

"4"不等于"<script>document.writeln(selectedCopyValue)</script>"

于 2013-06-13T19:16:33.880 回答