如何在JSF中访问Map

我尝试使用C:foreach来访问jsf中的地图。但我无法使用“#”符号访问jsf中的地图。但我可以使用“$”符号访问它。但是我需要访问使用jsf显示组件h:outputtext。我的示例代码是

h:form binding="#{MapInJsf.initForm}">  <%--
  • ${nameMap.key}
  • --%> I cann access it <%----%>

    我做错了什么以及如何访问?我的Ref链接是JSF组件的动态值绑定请帮帮我。

    这仅在您使用JSP 2.1或更高版本(Servlet 2.5或更高版本)时才有效。 在JSP 2.0或更早版本(Servlet 2.4或更早版本)上,无法通过延迟EL #{}引用c:forEach变量。 延迟的EL #{}最初是JSF 1.0的一部分,后来只是在JS 2.1发布时才集成在JSP 2.1中。 但是,您应该能够使用标准EL ${}

         

    但是你将无法将它绑定到像这样的UIInput组件,因为${}表示法只调用bean getter而不是setter。

    如果您正在运行servlet 2.5兼容容器(如Tomcat 6.0及更高版本),那么您需要确保根据Servlet 2.5声明web.xml 。 即根声明必须如下:

      

    只有这样,您才能在JSP标签(如JSTL #{}上使用延迟EL #{}

    也可以看看:

    • 关于统一表达语言的Java / JSP文章