Таким образом, #{persons}
является Map<String, String>
. Вы можете получить доступ к значениям карты по ключам так же, как обычные Javabeans. Так что #{person.name}
вернет map.get("name")
.
Итак, это должно сделать:
<ui:repeat value="#{class.persons}" var="person">
<h:outputText value="#{person.name}"/>
<h:outputText value="#{person.family}"/>
</ui:repeat>
(я переименовал только persons
в person
, потому что он, по сути, представляет только одного человека)
Между прочим, также допустим следующий способ, и он фактически будет единственным, если у вас есть ключ карты, содержащий точки:
<ui:repeat value="#{class.persons}" var="persons">
<h:outputText value="#{persons['name']}"/>
<h:outputText value="#{persons['family']}"/>
</ui:repeat>
(видите, вы были близки, вы только забыли закрывающую скобку)
Однако обычная практика заключается в создании класса Javabean вместо Map
, если он действительно представляет сущность.
public class Person {
private String name;
private String family;
// ...
// Add/generate getters/setters and other boilerplate.
}
И скормить его как List<Person>
к виду.