Menu(Richfaces)

12 respostas
gisa_screen

Boa noite aii pra todos!!!

Queria saber como faço pra criar um menu usando o Richfaces e JSF, eu preciso de mais alguns jar alem dos jars do Richfaces…E tbm pra criar um menu, preciso de uma classe ??? alguem pode me explicar como faço??? tenho duvidas…

obrigada…

12 Respostas

B

Aqui você encontrará o que precisa http://liferay.exadel.com/web/guest

Um abraço

surfzera

não apenas os .jar do richfaces são nescessarios… você tambem não pode esquecer de declarar as taglibs.

luan03

precisa de alguns jars dos JSFs

-cummons logs
-JSTL

esses são os mais básicos.

dependendo se você for trabalhar com componentes vc deverá criar classes como Handler para acessar o maneged bean e criar suas handlers para manipulaçao de dados dinâmicos afinal JSF é toralmente dinânico.

luan03

luan03:
precisa de alguns jars dos JSFs

-cummons logs
-JSTL

esses são os mais básicos.

dependendo se você for trabalhar com componentes vc deverá criar classes como Handler para acessar o maneged bean e criar suas handlers para manipulaçao de dados dinâmicos afinal JSF é toralmente dinânico.

Faltou tambem os jars dos JSF :shock:

vi-gb

Neste link http://www.furutani.com.br/2009/05/construindo-menu-dinamicamente-com-richfaces/ tem um exemplo de menu dinamico com richfaces.

gisa_screen

Eu estou usando o Richfaces, só que nao sei como criar um menu… no site q passou nao explica detalhamente…Como crio essa classe Menu? na classe deve conter uma lista de itens???

vi-gb

No site do richfaces tem um exemplo http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=dropDownMenu&tab=usage ja tentou faze-lo?
Creio que as libs que vc precisa sao as para jsf e as do richfaces mesmo nao de diferente.

Agora se o menu precisa ser criado dinamicamente veja este exemplo, eu nao rodei ele mas serei ± isso ai, neste exemplo vc tem um menu ‘Paginas’ e nele um item ‘minha pagina’ que ao clicar leva para uma pagina ‘main.minhaPagina’ referenciada no faces:

private HtmlDropDownMenu getMenu() {
		HtmlDropDownMenu menu = new HtmlDropDownMenu();
		try {
			HtmlMenuItem item = criaItem();
			menu.setId("meuMenu");
			menu.setValue("Paginas");

			menu.getChildren().add(item);
		} catch (Exception e) {
			 e.printStackTrace();
		}
		return menu;
	}
	
	private HtmlMenuItem criaItem() {
		
		HtmlMenuItem item = new HtmlMenuItem();
		try {
				
			String link = "main.minhaPagina";
			MethodExpression actionExpression = FacesContext.getCurrentInstance()
				.getApplication().getExpressionFactory().createMethodExpression(
						FacesContext.getCurrentInstance().getELContext(), 
						link, null, new Class<?>[0]);   
			
			item.setId("pagina1");
			item.setActionExpression(actionExpression);
			item.setValue("Minha pagina");
		} catch (Exception e) {}
		return item;
	}

 e o componente

<rich:dropDownMenu binding="#{meuBean.menu}"></rich:dropDownMenu>
gisa_screen

tipo eu crio essa classe MenuBean? no meu pacote de controle? e na página.jsp chamo-as , de acordo com que está configurado no faces.config…

vi-gb

Isso vc cria este MeuBean e poe os metodos nele, e cria 2 jsp um para colocar o menu e outro para ser chamado pelo menu, ai vc declarar eles no faces config .

gisa_screen

Bem eu estava usando o menu comum, com o
commandlink --> <h:commandLink action=“usuarios”>Usuarios</h:commandLink>

que no faces ta assim:

&lt;navigation-case&gt; &lt;from-outcome&gt;usuarios&lt;/from-outcome&gt; &lt;to-view-id&gt;/usuarios.jsp&lt;/to-view-id&gt; &lt;/navigation-case&gt;

Agora essas duas jsp nao entendi…qnd vc colloca “main.minhapagina”; esse minha página é o <from-outcome>? do faces…

vi-gb

Ficou assim, testei e funcionou:

<managed-bean>
		<managed-bean-name>meuBean</managed-bean-name>
		<managed-bean-class>controle.MeuBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>

	<navigation-rule>
		<navigation-case>
			<from-outcome>main.teste</from-outcome>
			<to-view-id>/teste.jsf</to-view-id>
		</navigation-case>
		
		<navigation-case>
			<from-outcome>main.minhaPagina</from-outcome>
			<to-view-id>/minhaPagina.jsf</to-view-id>
		</navigation-case>
	</navigation-rule>


minha view do teste.jsp

<f:view>
	<h:form>
		<h:panelGrid columns="2">
			<rich:dropDownMenu binding="#{meuBean.menu}"></rich:dropDownMenu>
		</h:panelGrid>
	</h:form>

</f:view>

minha view da minhaPagina.jsp

<f:view>
	<h:form >
		<h:panelGrid columns="2">
			<h:outputText value="Olá"></h:outputText>
		</h:panelGrid>
	</h:form>

</f:view>

e o MeuBean

import javax.el.MethodExpression;
import javax.faces.context.FacesContext;

import org.richfaces.component.html.HtmlDropDownMenu;
import org.richfaces.component.html.HtmlMenuItem;

public class MeuBean {

	private HtmlDropDownMenu menu;

	public MeuBean() {
		menu = createMenu();

	}
	
	public HtmlDropDownMenu getMenu() {
		return menu;
	}

	public void setMenu(HtmlDropDownMenu menu) {
		this.menu = menu;
	}

	private HtmlDropDownMenu createMenu() {
		HtmlDropDownMenu menu = new HtmlDropDownMenu();
		try {
			HtmlMenuItem item = criaItem();
			menu.setId("meuMenu");
			menu.setValue("Paginas");

			menu.getChildren().add(item);
		} catch (Exception e) {
			 e.printStackTrace();
		}
		return menu;
	}
	
	private HtmlMenuItem criaItem() {
		
		HtmlMenuItem item = new HtmlMenuItem();
		try {
				
			String link = "main.minhaPagina";
			MethodExpression actionExpression = FacesContext.getCurrentInstance()
				.getApplication().getExpressionFactory().createMethodExpression(
						FacesContext.getCurrentInstance().getELContext(), 
						link, null, new Class<?>[0]);   
			
			item.setId("pagina1");
			item.setActionExpression(actionExpression);
			item.setValue("Minha pagina");
		} catch (Exception e) {}
		return item;
	}
}

Testa ai e me diz se deu certo.

gisa_screen

aqui nao funcionou…tipo, eu criei uma página menu.jsf com este código
<f:view>

<h:form>
<h:panelGrid columns=“2”>
<rich:dropDownMenu binding="#{menuMB.menu}"></rich:dropDownMenu>
</h:panelGrid>
</h:form>

</f:view>

como adiciono os itens???

Criado 15 de junho de 2010
Ultima resposta 16 de jun. de 2010
Respostas 12
Participantes 5