我有一个包含键和值的字符串的Map。基本上,我想输出:
<div class="something"
data-path="path"
data-linkurl="url"
/>
数据路径和数据链接是Map中的键。路径和网址是值。所以,我想将键和值输出为:
<jsp:attribute name="{key}">{value}</jsp:attribute>
问题是,一旦我添加一个循环来输出值,我得到错误“org.apache.jasper.JasperException:.jsp(65,8)jsp:body必须是标准或自定义动作的子元素。 “
在代码中,我有jsp:body标签。所以,这对我不起作用:
<jsp:element name="div">
<jsp:attribute name="class">something</jsp:attribute>
<c:forEach items="myMap">
<jsp:attribute name="key">value</jsp:attribute>
</c:forEach>
<jsp:body></jsp:body>
</jsp:element>
我甚至不需要使用MyMap。它只是在jsp:attribute中具有循环和静态值而失败。当然,如果我删除了foreach循环,它就可以工作。
有没有人对我在这里尝试的内容有什么建议?
此致 埃里克
答案 0 :(得分:-1)
简单方法:
<jsp:element name="div">
<jsp:attribute name="class">something</jsp:attribute>
<jsp:attribute name="data-path">key</jsp:attribute>
<jsp:attribute name="url">${myMap["key"]}</jsp:attribute>
</jsp:element>
OR(如果要编写所有动态属性)
<jsp:element name="div">
<jsp:attribute name="class">something</jsp:attribute>
<c:forEach items="${myMap}" var="entry">
<jsp:attribute name="${entry.key}">${entry.value}</jsp:attribute>
</c:forEach>
</jsp:element>
如果div有身体,你可以这样做
<jsp:body> ${div_body} </jsp:body>