2013-06-13 3 views
-1

Итак, у меня есть 2 переменные. Один написан в javascript, другой - в scriplet в jsp. Они оба являются строками, и оба они имеют значение «4», когда я их печатаю. Когда я это делаю .getClass(), они оба являются строковыми классами, но когда я распечатываю вопрос, являются ли они равно .equals() ИЛИ, даже если я это делаю (что я знаю, неверно для строк) == он выводит false.Почему мои переменные не равны?

Это мои переменные и как они объявлены.

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

String val4 = "4"; 

Выбранный CopyValue является разновидностью, которая написана на javascript выше. Заявлено (на данный момент, как она жёстко для тестирования), как:

String selectedCopyValue = "4"; 

Так почему, когда я делаю что-то еще, как огромный, как:

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

ли печатать ложь?

+4

Java не обрабатывает javascript – fmodos

+0

Поскольку 'displayValue' is' "" ', а не' '4" '. Сценарий не интерпретируется. – Blorgbeard

+0

Узнайте о жизненном цикле страницы! – epascarello

ответ

4

При печати showingValue, браузер выполняет сценарий и отображает 4. При сравнении строк, он не выполняет сценарий, так что буквально сравнивает строку:

"4" не равен "<script>document.writeln(selectedCopyValue)</script>"

+0

+1 за вашу доброту и терпение. Я считаю себя терпеливым, но, прочитав вопрос, я просто обратился к нему и потерял сердце, чтобы ответить сегодня. – quetzalcoatl