所以我有2个变量。一个用javascript编写,另一个用jsp中的scriplet编写。它们都是字符串,当我打印它们时它们都具有值“4”。当我执行.getClass()时,它们都是字符串类,但是当我打印出来询问它们是否是.equals()或者即使我这样做(我知道它对于字符串不正确)==它打印出错误。< / p>
这些是我的变量及其声明方式。
String showingValue = "<script>document.writeln(selectedCopyValue)</script>";
String val4 = "4";
selectedCopyValue是一个用上面的javascript编写的变量。它被声明(现在因为它是硬编码的测试):
String selectedCopyValue = "4";
那么为什么当我做一些广泛的事情时:
out.print(val4.trim().toString().equals(showingValue.trim().toString()));
打印出来是假的吗?
答案 0 :(得分:4)
当您打印showingValue
时,浏览器会执行脚本并显示4.当您比较字符串时,它不会执行脚本,因此它会比较字符串:
"4"
不等于"<script>document.writeln(selectedCopyValue)</script>"