[RESOLVIDO] Problema com view - JSF

Boa tarde pessoal,

Estou estudando o JSF e estou com um problema de iniciante acredito eu. Eu tenho uma managedBean que tem possui uma lista de objetos, porém não consigo visualizar na página xhmtl. seguem os códigos.

[code]package model;

public class Personagem {
private String name;
private int lvl;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLvl() {
return lvl;
}
public void setLvl(int lvl) {
this.lvl = lvl;
}
}

@ManagedBean
@ViewScoped
public class PersonagemBean {

private List<Personagem> chars = new ArrayList<Personagem>();
private Personagem  personagem = new Personagem();

public PersonagemBean(){
	Personagem p = new Personagem();
	p.setName("Oberyn");
	p.setLvl(1);
	this.chars.add(p);
	p = new Personagem();
	p.setName("Sansa");
	p.setLvl(1);
	this.chars.add(p);
}

public List<Personagem> getChars() {
	return chars;
}
public void setChars(List<Personagem> chars) {
	this.chars = chars;
}
   	public Personagem getPersonagem() {
	return personagem;
}

public void setPersonagem(Personagem personagem) {
	this.personagem = personagem;
}

form.xhtml

<h:body>
<h:form>
<h:panelGrid columns=“2”>
<h:outputLabel value=“Nome:” for=“campo-name”/>
<h:inputText value="#{personagemBean.personagem.name}"
id=“campo-name” />
<h:outputLabel value=“Lvl” for=“campo-lvl”/>
<h:inputText value="#{personagemBean.personagem.lvl}"
id=“campo-lvl” />
<h:commandButton value=“Adicionar”
action="#{personagemBean.adicionaPersonsagem}"/>
</h:panelGrid>
</h:form>

<h:panelGroup >
	<h1>Lista de Personagens</h1>
	<ul>
		<ui:repeat var="#{personagemBean.chars}" value="personagem">
			<li><h:outputText 
			value="#{personagem.name} #{personagem.lvl}"/> </li>	
		</ui:repeat>
	</ul>
</h:panelGroup>

</h:body>

[/code]

Quem puder me auxiliar, agradeço desde já.

Aparece alguma mensagem de erro?

<h:panelGroup >  
    <h1>Lista de Personagens</h1>  
        <ul>  
            <ui:repeat var="char" value="#{personagemBean.chars}">  
                <li><h:outputText value="#{char.name} #{char.lvl}"/></li>
            </ui:repeat>  
        </ul>  
</h:panelGroup>

O atributo value deve receber o bind da collection na qual será feita a iteração. O atributo var serve para se acessar o item atual da iteração, como em um for:

for(Personagem (var)character : (value)PersonagemBean.getChars() { character.getName(); character.getLvl(); }

Espero ter ajudado :wink:

Não, inclusive se eu mandar dar um sysout sai no console a lista com o novo personagem que eu adicionei.

[quote=Leonardo Gaona][/quote]
Mas teoricamente meu panelGroup já não está fazendo isso ?

Tente adicionar <h:head></h:head> antes do body.

Leonardo Gaona só agora entendi o que você queria mostrar, eu tinha trocado os valores, estava colocando a lista no lugar da var, agora funcionou.
Muito obrigado a ambos.