Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

não consigo exibir lista de temas do ultimo exercicio

quando tento criar a lista para a escolha de temas, além de ela não aparecer, o p:themeSwitcher do livro.xhtm fica desconfigurado. alguém tem ideia do que seja? template.xhtm:

<html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:p="http://primefaces.org/ui"> 

    <h:head/>

    <h:body>
        <div id="cabecalho"> 
          <h:graphicImage library="img" name="logo.png"/>
          <h:form>
              <p:themeSwitcher value="#{temaBean.tema}" style="position: absolute; right: 10px;">
                  <f:selectItems value="#{temaBeans.temas}"/>
                  <f:ajax/>
              </p:themeSwitcher>
          </h:form>
          <h:form>
              <p:menubar>
                  <p:submenu label="Cadastros">
                      <p:menuitem value="Autor" action="autor"/>
                      <p:separator/>
                      <p:menuitem value="Livro" action="livro"/>
                  </p:submenu>
              </p:menubar>
           </h:form>
           <h1><ui:insert name="titulo"/></h1>          
        </div>

        <div id="conteudo">
            <ui:insert name="conteudo"/>
        </div>

        <div id="rodape">
          copyright 2014 - 
           <ui:insert name="texto"/>
        </div>

    </h:body>
</html>

temaBean.java:

package br.com.caelum.livraria.bean;

import java.util.Arrays;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class TemaBean {

    private String tema = "aristo";

    public String getTema() {
        return tema;
    }

    public void setTema(String tema) {
        this.tema = tema;
    }

    public List<String> getTemas(){
        return Arrays.asList("afterdark","afternoon","afterwork","aristo","black-tie","blitzer","bluesky","casablanca","cruze","cupertino", 
                "dark-hive", "delta","dot-luv","eggplant","excite-bike","flick","glass-x","home","hot-sneaks","humanity","le-frog","midnight", 
                "mint-choc","overcast","pepper-grinder","redmond","rocket","sam","smoothness","south-street","start","sunny","swanky-purse", 
                "trontastic","twitter bootstrap","ui-darkness",    "ui-lightness","vader");
    }

}
7 respostas
solução!

Oi Tathiana,

A principio o único problema que identifiquei foi no seu xhtml, na tag <f:selectItems value="#{temaBeans.tema}"/>

No atributo value, o nome do ManagedBean está temaBeans, no plural, mas na verdade é temaBean, no singular.

Veja se isso resolve o problema.

Olá Rodrigo, obrigada pela resposta... Realmente havia esse erro,mudei para:

   <p:themeSwitcher value="#{temaBean.tema}" style="position: absolute; right: 10px;">
                  <f:selectItems value="#{temaBean.temas}"/>
                  <f:ajax/>
              </p:themeSwitcher>

agora a página aparece normal, porem a lista de temas não aparece. Dei uma olhadinha no código fonte da página e está aparecendo um tal de Hiden accessible

<div id="j_idt6:j_idt7" class="ui-selectonemenu ui-widget ui-state-default ui-corner-all ui-helper-clearfix" style="position: absolute; right: 10px;"><div class="ui-helper-hidden-accessible"><select id="j_idt6:j_idt7_input" name="j_idt6:j_idt7_input"><option value="afterdark">afterdark</option><option value="afternoon">afternoon</option><option value="afterwork">afterwork</option><option value="aristo" selected="selected">aristo</option><option value="black-tie">black-tie</option><option value="blitzer">blitzer</option><option value="bluesky">bluesky</option><option value="casablanca">casablanca</option><option value="cruze">cruze</option><option value="cupertino">cupertino ....

Será que é por isso que ela não está aparecendo?

Era só erro de cache! agora tá tudo direitinho! Obrigada!

Que bom que resolveu =)

Bons estudos!

Olá Tathiana pode me falar sobre esse erro de cache, pois também estou com problema. Depois que themeSwitche com o form as lista de templates não aparece.

Oi Gibran, é só você remover o style="position: absolute; right: 10px;" que a combo-box com os temas vai aparecer normalmente.

Vlw!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software