java 使用 jstl 时获得预期的相等符号
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4387695/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Getting equal symbol expected while using jstl
提问by Almas
I am getting
我正进入(状态
org.apache.jasper.JasperException: /WEB-INF/AllClientBatchDetails.jsp(54,103) equal symbol expected
org.apache.jasper.JasperException: /WEB-INF/AllClientBatchDetails.jsp(54,103) 预期等号
And here is the jsp
这是jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html:html xhtml="true">
<head>
<title><bean:message key="progressReporter.successpage.title"/></title>
<link rel="stylesheet" href="style.css">
<html:base/>
</head>
<body>
<c:choose>
<c:when test="${empty batchProgressMetricsList}">
<font color=<bean:message key="error.font.color" /> size=<bean:message key="error.font.size" />>
<bean:message key="error.no.active.batch" />
</font>
<br/>
</c:when>
<c:otherwise>
<h4><bean:message key="table.header" /></h4>
<table border=<bean:message key="table.border.size" />>
<tr>
<th><bean:message key="table.client.id.header" /></th>
<th><bean:message key="table.total.session.used" /></th>
<th><bean:message key="table.total.time.elapsed" /></th>
<th><bean:message key="table.imnts.completed" /></th>
<th><bean:message key="table.imnts.remaining" /></th>
<th><bean:message key="table.cores.allocated" /></th>
<th><bean:message key="table.time.remaining" /></th>
</tr>
<c:forEach var="aggregatedBatchProgressMetrics" items="${batchProgressMetricsList}">
<tr>
<td class="tdcenter">${aggregatedBatchProgressMetrics["clientId"]}</td>
<td class="tdcenter">${fn:substringBefore(aggregatedBatchProgressMetrics["sessionStats"]["sessionUsedTime"]/60000, '.')}mins${fn:substringBefore((aggregatedBatchProgressMetrics["sessionStats"]["sessionUsedTime"] % 60000)/1000, '.')}secs </td>
<td class="tdcenter">${fn:substringBefore(aggregatedBatchProgressMetrics["sessionStats"]["totalElapsedTime"]/60000, '.')}mins${fn:substringBefore((aggregatedBatchProgressMetrics["sessionStats"]["totalElapsedTime"] % 60000)/1000, '.')}secs</td>
<td class="tdcenter">${aggregatedBatchProgressMetrics["instrumentStats"]["totalImntsCompleted"]}</td>
<td class="tdcenter">${aggregatedBatchProgressMetrics["instrumentStats"]["totalImntsRemaining"]}</td>
<td class="tdcenter">${aggregatedBatchProgressMetrics["numberOfCores"]}</td>
<td class="tdcenter">${fn:substringBefore(aggregatedBatchProgressMetrics["sessionStats"]["sessionRemainingTime"]/60000, '.')}mins${fn:substringBefore((aggregatedBatchProgressMetrics["sessionStats"]["sessionRemainingTime"] % 60000)/1000, '.')}secs</td>
<br/>
<table>
<tr>
<th>session Id</th>
<th>taskId</th>
<th>task start time</th>
<th>task end time</th>
</tr>
${aggregatedBatchProgressMetrics["batchMetricsList"][0]}
${aggregatedBatchProgressMetrics["batchMetricsList"][1]}
${aggregatedBatchProgressMetrics["batchMetricsList"][2]}
<c:forEach var="batchProgressMetrics" items="${aggregatedBatchProgressMetrics["batchMetricsList"]}">
<tr>
<td class="tdcenter">${batchProgressMetrics["taskStats"]["sessionId"]}</td>
<td class="tdcenter">${batchProgressMetrics["taskStats"]["taskId"]}</td>
<td class="tdcenter">${batchProgressMetrics["taskStats"]["taskStartTime"]}</td>
<td class="tdcenter">${batchProgressMetrics["taskStats"]["taskEndTime"]}</td>
</tr>
</c:forEach>
</table>
<br/>
</tr>
</c:forEach>
</table>
</c:otherwise>
</c:choose>
<html:link page="/ProgressReporterForm.jsp">Go Back</html:link>
</body>
</html:html>
I have request attribute set to batchProgressMetricsList and its an array list of an object called. I have AggregatedBatchProgressMetrics. Inside aggregatedBatchProgressMetrics
i have a method called getBatchMetricsList
which return an arraylist of object called BatchProgressMetrics. If i run it without the nested c:forEach
tag, it would just run fine, but if i include the nested one it just fails. Can somebody please help me?
我将请求属性设置为 batchProgressMetricsList 及其调用的对象的数组列表。我有 AggregatedBatchProgressMetrics。在里面aggregatedBatchProgressMetrics
我有一个调用的方法getBatchMetricsList
,它返回一个名为 BatchProgressMetrics 的对象数组列表。如果我在没有嵌套c:forEach
标签的情况下运行它,它会运行良好,但如果我包含嵌套标签,它就会失败。有人能帮帮我吗?
Thanks in advance. Almas
提前致谢。阿尔玛斯
回答by Jim Tough
Try changing this:
尝试改变这个:
items="${aggregatedBatchProgressMetrics["batchMetricsList"]}"
to this:
对此:
items="${aggregatedBatchProgressMetrics['batchMetricsList']}"
回答by BalusC
Replace
代替
<c:forEach var="batchProgressMetrics" items="${aggregatedBatchProgressMetrics["batchMetricsList"]}">
by
经过
<c:forEach var="batchProgressMetrics" items="${aggregatedBatchProgressMetrics['batchMetricsList']}">
The doublequote was closing the items
value too soon which resulted in invalid EL. You should have spotted this soon enough when using an editor with decent sytnax highlighting (like here on SO :) ).
双引号items
过早关闭值,导致 EL 无效。在使用具有体面的 sytnax 突出显示的编辑器时,您应该很快就会发现这一点(例如 SO :) 上的此处)。