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
Java jstl forToken在请求属性中具有嵌套哈希映射_Java_Jsp_Jstl_El - Fatal编程技术网

Java jstl forToken在请求属性中具有嵌套哈希映射

Java jstl forToken在请求属性中具有嵌套哈希映射,java,jsp,jstl,el,Java,Jsp,Jstl,El,我有一个HashMap(hshFields)的HashMap(ecd_date、Own_by等),其中包含键(标签、大小等),我可以访问这些键: <c:out value="${hshFields.ecd_date.label}" /> <c:out value="${hshFields.owned_by.label}" /> <c:out value="${hshFields.fnd_source.label}" /> 我现在想使用jstl forToke

我有一个HashMap(hshFields)的HashMap(ecd_date、Own_by等),其中包含键(标签、大小等),我可以访问这些键:

<c:out value="${hshFields.ecd_date.label}" />
<c:out value="${hshFields.owned_by.label}" />
<c:out value="${hshFields.fnd_source.label}" />
我现在想使用jstl forToken在嵌套HashMap上循环。但我无法让它工作。以下是我的一个尝试:

 <c:forTokens items="commitment_id, owned_by, fndsource" delims="," var="curField">
    The Field Label is: <c:out value="${hshFields.${curField}.label}" /> <br />
    The Field Sixze is: <c:out value="${hshFields.${curField}.size}" /> <br />
</c:forTokens>
它似乎只对第一个令牌起作用,因为如果我使用以下令牌:

Label for owned_by : <c:out value="${hshFields.owned_by.label}" /> <br></br>
Label for ecd_date : <c:out value="${hshFields.ecd_date.label}" /> <br></br>
Label for commitment_id : <c:out value="${hshFields.commitment_id.label}" /> <br></br>

你的语法不太正确,应该是这样的

<c:out value="${hshFields[curField].label}" />
而不是

items="commitment_id, owned_by, fndsource"

否则,空格将构成单个循环值的一部分。

注意:您同时使用JSTL和EL。JSTL是那些
标记,EL是那些
${}
东西。@BalusC我的意思是我使用的是JSP1.2,所以这不起作用:但这确实起作用,这被称为“模板文本中的EL”。在JSP 2.0之前,它确实不起作用。谢谢。我做了更改,但是,我现在只获得了我的第一个令牌的标签。后续的令牌显示为空白。我已编辑了上面的帖子。
Label for owned_by : <c:out value="${hshFields.owned_by.label}" /> <br></br>
Label for ecd_date : <c:out value="${hshFields.ecd_date.label}" /> <br></br>
Label for commitment_id : <c:out value="${hshFields.commitment_id.label}" /> <br></br>
Label for owned_by : Commitment Owner
Label for ecd_date : Estimated Completion Date
Label for commitment_id : Commitment Number
<c:out value="${hshFields[curField].label}" />
<c:out value="${hshFields.${curField}.label}" />
items="commitment_id,owned_by,fndsource"
items="commitment_id, owned_by, fndsource"