我有一个名为test.xhtml的文件我试图在Facelets中使用foreach访问哈希映射,但是它没有显示键值对,我的代码如下所示。这是怎么造成的,我该如何解决?
<html xmlns:c="http://java.sun.com/jstl/core" xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
<title>JSTL Simple Conditional Execution Example</title>
</head>
<h:body>
<f:view>
<c:forEach var="nameMap" items="${specificationAutogege.details}">
<p> ${nameMap.key}</p>
</c:forEach>
</f:view>
</h:body>
是否可以在Facelets中使用JSTL?
HTML输出呈现如下:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:c="http://java.sun.com/jstl/core">
<head>
<title>JSTL Simple Conditional Execution Example</title>
</head>
<body>
<c:forEach var="nameMap" items="{Versnellingsk=A very long text come here, Kleur=ZWART Two, Model=3008, Carrosiere=5 deures MPV, A very long text come here=Date Here, BrandShoert=E, Type=3008 Hybrid4 2.0 HDi, Merk=Peugeot, Bowjaar=2011 Shortgate}" varstatus="true">
<p/>
</c:forEach>
</body>
</html>
答案 0 :(得分:10)
xmlns:c="http://java.sun.com/jstl/core"
此JSTL XML命名空间URI特定于Facelets 1.x. JSF 2.x附带了Facelets 2.x,它具有不同的JSTL XML名称空间URI:
xmlns:c="http://java.sun.com/jsp/jstl/core"
由于引入了JSF 2.2新的XML命名空间域来删除旧的sun.com
域。
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
答案 1 :(得分:-1)
xhtml扩展名表明你使用的是JSF2而不是JSF,因此你需要使用$ {}表示法切换到#{}表示法。
希望有所帮助。