Элемент списка Java не определен внутри тега привязки

#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;