Java List 元素在锚标记内未定义
Posted
技术标签:
【中文标题】Java List 元素在锚标记内未定义【英文标题】:Java List element is undefined inside anchor tag 【发布时间】:2021-12-06 22:06:53 【问题描述】:有一个列表定义为:
List<String> list = Arrays.asList("Abc", "Def");
问题出在锚标签内,列表元素未定义。
for (int i = 0; i < list.size(); i++)
<a id="<%=list.get(i)%>" href="javascript:;" onClick="openWindow(<%=list.get(i)%>);" align="left">Proceed</a>
openWindow函数定义如下:
function OpenHierarchyWindow(id)
alert("id value "+id.value);
警报函数给出未定义的输出。为什么list.get(i)
无法获取锚标签内的数据。
【问题讨论】:
不相关,但内联onClick
不会像写的那样工作,因为字符串没有被引用。
@DaveNewton onClick 正在工作,我收到了警报。问题是 list.get(i) 没有获取列表元素。
渲染 JSP 时会生成什么 html?
在 OpenHierarchyWindow() 内部,另一个窗口正在打开window.open("list.htm?ACTION=loadData&DIMENSIONS="+id.value,"WindowDimension1","width=600,height=570,top=100,left=200,scrollbars=1");
。此窗口已打开,但由于上述问题,DIMENSIONS="+id.value
生成为Dimensions=undefined(list.get(i) 在锚标记内以未定义形式出现)
<%@ attribute name="list" type="java.util.Collection" %>
?发布完整的代码或至少可重现的代码。
【参考方案1】:
这里应该引用 onClick javascript 函数中的 JSP 脚本。 你可以替换
onClick="openWindow(<%=list.get(i)%>);"
有
onClick="openWindow('<%=list.get(i)%>');"
下面是相同的完整代码。
<%@ page import="java.util.List"%>
<%@ page import="java.util.Arrays"%>
<!DOCTYPE html>
<html>
<head>
<title>JSP Scriplets And Java Script</title>
<script type="text/javascript">
function OpenHierarchyWindow(id)
alert("id value " + id);
</script>
</head>
<body>
<%
List<String> list = Arrays.asList("Abc", "Def");
for (int i = 0; i < list.size(); i++) %>
<a id="<%=list.get(i)%>" href="javascript:;" onClick="OpenHierarchyWindow('<%=list.get(i)%>');" align="left">Proceed</a>
<%%>
</body>
</html>
【讨论】:
以上是关于Java List 元素在锚标记内未定义的主要内容,如果未能解决你的问题,请参考以下文章
AngularJS element.innerHTML 在指令内未定义