【问题标题】:Java List element is undefined inside anchor tagJava List 元素在锚标记内未定义
【发布时间】: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&amp;DIMENSIONS="+id.value,"WindowDimension1","width=600,height=570,top=100,left=200,scrollbars=1");。此窗口已打开,但由于上述问题,DIMENSIONS="+id.value 生成为Dimensions=undefined(list.get(i) 在锚标记内以未定义形式出现)
  • &lt;%@ attribute name="list" type="java.util.Collection" %&gt;?发布完整的代码或至少可重现的代码。

标签: javascript java html jsp


【解决方案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>

【讨论】:

    猜你喜欢
    • 2010-12-07
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多