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>
<h:form>
<teste:lazyPaginator variable = "TESTANDO O COMPONENTE"/>
<h:commandButton value="Submit" action="#{myBean.printarVariavel}"/>
</h:form>
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.