Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 检索作为请求属性存储的数组元素属性的正确EL语法是什么?_Jsp_El - Fatal编程技术网

Jsp 检索作为请求属性存储的数组元素属性的正确EL语法是什么?

Jsp 检索作为请求属性存储的数组元素属性的正确EL语法是什么?,jsp,el,Jsp,El,我将ArrayList设置为jsp页面的请求属性。数组列表由我的servlet填充。我使用数组列表在页面上填充一个功能正常的下拉列表。当用户在下拉列表中选择一个项目时,我想使用选择的索引从数组列表中的对应元素中检索一个值,并在另一个页面元素(名为“limit”)中显示该值。我想我就是不能正确理解EL语法 JSP中的下拉列表(正确显示选项): 选择覆盖范围 JS函数: <script> function displaylimit(coveragedropdown) { var in

我将ArrayList设置为jsp页面的请求属性。数组列表由我的servlet填充。我使用数组列表在页面上填充一个功能正常的下拉列表。当用户在下拉列表中选择一个项目时,我想使用选择的索引从数组列表中的对应元素中检索一个值,并在另一个页面元素(名为“limit”)中显示该值。我想我就是不能正确理解EL语法

JSP中的下拉列表(正确显示选项):


选择覆盖范围
JS函数:

<script>
function displaylimit(coveragedropdown)
{
var index = coveragedropdown.selectedIndex;
limit = "${requestScope.coveragelist[index].coverage.coverageLimit}";
document.getElementById("limit").innerHTML = limit;

}
</script>

功能显示限制(覆盖率下拉列表)
{
var索引=覆盖率下拉列表。selectedIndex;
limit=“${requestScope.coveragelist[index].coverage.coverageLimit}”;
document.getElementById(“limit”).innerHTML=limit;
}
该数组包含Coverage对象,这些对象的属性定义为coverageCode、coverageCodeDesc和coverageLimit

索引字段确实包含下拉列表中所选项目的正确值(尽管我可能需要从中减去1-我必须进行检查)。我只是无法从覆盖列表的特定元素中获得限制值,也无法找出我做错了什么。这可能很简单


提前感谢。

您尝试在服务器端解析表达式中使用客户端运行时JavaScript变量
index

我认为,只要尝试将
片段服务器化,就会得到JspException

一种方法是在服务器上构建
coverageLimits
的JavaScript数组,并将其嵌入到
displaylimit
函数中

以下是一种方法:

function displaylimit(coveragedropdown)
{
  var index = coveragedropdown.selectedIndex;

  // Build the list on a server
  // I am not a JavaScript expert, so you may need to
  // do some escaping/quoting here
  var coverageLimits = [
    <c:forEach items="${coveragelist}" var="coverage">
      ${fn:escapeXml( coverage.coverageLimit )},
    </c:forEach>
  ];

  var limit = coverageLimits[index];
  document.getElementById("limit").innerHTML = limit;
}
功能显示限制(覆盖率下拉列表)
{
var索引=覆盖率下拉列表。selectedIndex;
//在服务器上生成列表
//我不是JavaScript专家,所以您可能需要
//在这里做一些转义/引用
var覆盖范围限制=[
${fn:escapeXml(coverage.coverageLimit)},
];
var限额=覆盖率限额[指数];
document.getElementById(“limit”).innerHTML=limit;
}

您不能将EL(服务器端)和JavaScript(客户端)混用,但这个答案对我帮助不大。你能更具体地说明我的错误在哪里吗?也许能给我指出正确的方向?
function displaylimit(coveragedropdown)
{
  var index = coveragedropdown.selectedIndex;

  // Build the list on a server
  // I am not a JavaScript expert, so you may need to
  // do some escaping/quoting here
  var coverageLimits = [
    <c:forEach items="${coveragelist}" var="coverage">
      ${fn:escapeXml( coverage.coverageLimit )},
    </c:forEach>
  ];

  var limit = coverageLimits[index];
  document.getElementById("limit").innerHTML = limit;
}