Composite Component: socorro!

0 respostas
knik

Pessoal, estou tentando (há dias) passar um valor para o backing bean usando composite component. Não consigo de jeito nenhum:

Veja o componente:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:cc="http://java.sun.com/jsf/composite"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets">
	
	<cc:interface >
		<cc:attribute name="variable" default="teste" type="java.lang.String"/>				
	</cc:interface>
	
	<cc:implementation>				
		<h:inputText id="variable" value="#{cc.attrs.variable}"/> //isto aqui eh soh para visualizar na tela o valor do atributo	
	</cc:implementation>
	
</html>
Eu adiciono o componente na página assim:
<h:form>				 
	<teste:lazyPaginator variable = "TESTANDO O COMPONENTE"/>
	<h:commandButton value="Submit" action="#{myBean.printarVariavel}"/>		
</h:form>
E o meu backingBean:
private String variable;
	
public void printarVariavel(){
	System.out.println(variable);
}
	
public String getVariable() {
	return variable;
}
public void setVariable(String variable) {
	this.variable = variable;
}

Legal, muito simples. Não dá erro, o valor do atributo aparece no controle inputText mas ao acionar o botão printa null no console do Eclipse, exatamente porque não consigo passar o valor do "attribute" para o backBean. Se não há como se fazer isto, então para que serve o "cc.attribute"? Só para faze telas de login, como tenho visto vários exemplos por aí?
Alguém pode me ajudar? Minha idéia é setar vários atributos (números) e processá-los no backBean (realizar uma multiplicação, por exemplo), usando composite-component.

Obrigado pessoal.

Criado 12 de maio de 2011
Respostas 0
Participantes 1