#javascript #java #html #jsp
Вопрос:
Существует список, определенный как:
Listlt;Stringgt; list = Arrays.asList("Abc", "Def");
Проблема в том, что внутри тега привязки элемент списка отображается как неопределенный.
for (int i = 0; i lt; list.size(); i ) { lt;a id="lt;%=list.get(i)%gt;" href="javascript:;" onClick="openWindow(lt;%=list.get(i)%gt;);" align="left"gt;Proceedlt;/agt; }
Функция openWindow определяется следующим образом:
function OpenHierarchyWindow(id) { alert("id value " id.value); }
Функция оповещения выдает вывод как неопределенный. Почему list.get(i)
не удается извлечь данные внутри тега привязки.
Комментарии:
1. Несвязанный, но встроенный
onClick
не будет работать так, как написано, так как строка не заключена в кавычки.2. @DaveNewton onClick работает, и я получаю предупреждение. Проблема в том, что list.get(i) не извлекает элементы списка.
3. Какой HTML генерируется при рендеринге JSP?
4. Внутри OpenHierarchyWindow() открывается другое окно
window.open("list.htm?ACTION=loadDataamp;DIMENSIONS=" id.value,"WindowDimension1","width=600,height=570,top=100,left=200,scrollbars=1");
. Это окно открывается, ноDIMENSIONS=" id.value
генерируется как Dimensions=undefined из-за вышеупомянутой проблемы (list.get(i) приходит как неопределенный внутри тега привязки)5.
lt;%@ attribute name="list" type="java.util.Collection" %gt;
? опубликуйте полный код или, по крайней мере, воспроизводимый код.
Ответ №1:
здесь скрипты JSP внутри функции onClick javascript должны быть заключены в кавычки. Вы можете заменить
onClick="openWindow(lt;%=list.get(i)%gt;);"
С
onClick="openWindow('lt;%=list.get(i)%gt;');"
Ниже приведен полный код для того же самого.
lt;%@ page import="java.util.List"%gt; lt;%@ page import="java.util.Arrays"%gt; lt;!DOCTYPE htmlgt; lt;htmlgt; lt;headgt; lt;titlegt;JSP Scriplets And Java Scriptlt;/titlegt; lt;script type="text/javascript"gt; function OpenHierarchyWindow(id) { alert("id value " id); } lt;/scriptgt; lt;/headgt; lt;bodygt; lt;% Listlt;Stringgt; list = Arrays.asList("Abc", "Def"); for (int i = 0; i lt; list.size(); i ) {%gt; lt;a id="lt;%=list.get(i)%gt;" href="javascript:;" onClick="OpenHierarchyWindow('lt;%=list.get(i)%gt;');" align="left"gt;Proceedlt;/agt; lt;%}%gt; lt;/bodygt; lt;/htmlgt;