Duvidas com ZK MVC + Spring

1 resposta
J

Olá pessoal!
Estou inciando o desenvolvimento de uma pequena aplicação utilizando ZK, configurei o spring e a principio esta funcionando tudo corretamente. A minha dúvida é qual a melhor forma de utiliza-lo, pois estou acostumado a desenvolver com JSF E managed beans. Então lá vai a duvida.

Seguinte, quando desenvolvo em jsf utilizo da seguinte forma:

Bean de controle:
public String incluir() {
        //Validação
        
        CadastroBean cadBean = (CadastroBean) JSFUtils.getManagedBean("cadastroBean");
        Pessoa pessoa = new Pessoa();
        cadBean.setPessoa(pessoa);
        
        return "cadastrar";
    }
    
    /** Metodo para editar 
     * 
     * @return
     */
    public String editar() {
        Pessoa pessoa = (Pessoa) dataModel.getRowData();
        CadastroBean cadBean = (CadastroBean) JSFUtils.getManagedBean("cadastroBean");
        cadBean.setPessoa(pessoa);
        
        return "editar";
    }

O exemplo citado acima, em jsf, quando clico em editar ele aciona o managed bean e em caso de inclusão, cria um novo objeto e de edição carrega, e quando a tela de cadastro é aberta ele ja carrega o bean automaticamente com spring. O problema é que com ZK, ele não carrega de forma automatica e por isso acabo passando os parametros pelo session, da seguinte forma:

sessionScope.put("id", pessoaid.getValue());

Então minha duvida é se isso é uma boa forma, ou se ha alguma melhor? Pois, acaba ficando meio esquisito o uso do spring, sendo que ele não está injentando as dependencias.

1 Resposta

J

Depois de algumas pesquisas la no fórum do ZK eu encontrei a solução:

no *.zul:
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver" ?>
<window id="win" apply="${testComposer}" > ... </window>
E o controller parecido com isso:
@Controller("testComposer")
@Scope("singleton")
public class TestComposer extends GenericForwardComposer {

.....
}
E o método para chamar o controller:
public void onClick$adicionar(ForwardEvent event) {
		System.out.println("adicionar ========");
		
		Cadastrar ca = (Cadastrar) SpringUtil.getBean("testComposer");
		ca.setUsuario(uAM.getById(1L));
		Executions.sendRedirect("cadastrar.zul"); 
	}
Criado 25 de setembro de 2010
Ultima resposta 26 de set. de 2010
Respostas 1
Participantes 1