O Action base ganha o método proBean() — pré-requisito do Form. Enquanto o proWBean() (que já existia) serve pra filtros de busca, o proBean() serve pra ler e gravar dados de um produto individual.
package br.xt.app.departamento.produto;
import br.xt.AppsRootAction;
import br.xt.app.departamento.DepartamentoManager;
public abstract class DepartamentoProdutoAction extends AppsRootAction {
private DepartamentoProdutoWBean wbean = null;
public DepartamentoProdutoWBean proWBean() throws Exception {
if (wbean == null)
wbean = (DepartamentoProdutoWBean) getManager().getInstance(DepartamentoProdutoWBean.class);
return wbean;
}
// ADICIONAR
private DepartamentoProdutoBean bean = null;
public DepartamentoProdutoBean proBean() throws Exception {
if (bean == null)
bean = (DepartamentoProdutoBean) getManager().getInstance(DepartamentoProdutoBean.class);
return bean;
}
// FIM
public static final String ROOT = DepartamentoManager.F_ACESSO_MODULO.concat("__PRODUTO/");
}
Mudança nesta sequência: somente proBean() e o campo bean (verde). O proWBean() e a constante ROOT já existiam da sequência CRUD READ.
getInstance faz por baixo?
getManager().getInstance(DepartamentoProdutoBean.class) faz duas coisas:
nome_produto=Teclado, o Bean já volta com getNome_produto() retornando "Teclado"Isso é o que conecta o formulário HTML ao Java. Cada campo do Form tem um name que bate com o nome do setter do Bean. O framework faz o match automaticamente.
proBean() vs proWBean()
| Método | Retorna | Usa pra |
|---|---|---|
proBean() | DepartamentoProdutoBean | Ler/gravar UM produto (Form: inserir, editar, exibir) |
proWBean() | DepartamentoProdutoWBean | Filtros de busca na lista (WHERE do SQL) |
O WBean ("Where Bean") estende o Bean e implementa Criteria — ele carrega filtros (status, datas, texto de busca) que o DAO usa pra montar o WHERE. Já existia desde o READ.
O Bean puro carrega os dados de um registro individual — nome, valor, quantidade. É o que o Form precisa pra mostrar e gravar.
Ambos usam getInstance com o mesmo padrão lazy (cria uma vez, reutiliza na mesma request).