DepartamentoProdutoAction editar arquivo

0:00 / 0:00

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.

CÓDIGO COMPLETO
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.

O que getInstance faz por baixo?

getManager().getInstance(DepartamentoProdutoBean.class) faz duas coisas:

  1. Cria uma instância nova do Bean (via reflection, chamando o construtor vazio)
  2. Preenche automaticamente cada campo do Bean com os dados que vieram no request — se o formulário mandou 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.

Diferença: proBean() vs proWBean()
MétodoRetornaUsa pra
proBean()DepartamentoProdutoBeanLer/gravar UM produto (Form: inserir, editar, exibir)
proWBean()DepartamentoProdutoWBeanFiltros 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).