6

我有一个名为 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>
4

2 回答 2

12
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"

也可以看看:

于 2012-07-16T13:43:32.813 回答
-1

xhtml 扩展建议您使用 JSF2 而不是 JSF,因此您需要从使用 ${} 表示法切换到 #{} 表示法。

希望有帮助。

于 2014-10-09T16:04:56.290 回答