Pessoal,
Estou com um problema parecido com os já falados. Estou tentando fazer um collection a partir de um bean e construo usando um Action e ActionForm, e dá o erro dizendo que não tem o campo que chamo no jsp. Seguem os códigos:
Bean Pedidocompra:
@Entity
@Table(name = "pedidocompra")
@NamedQueries({@NamedQuery(name = "Pedidocompra.findByNumeroPedido", query = "SELECT p FROM Pedidocompra p WHERE p.numeroPedido = :numeroPedido"), @NamedQuery(name = "Pedidocompra.findByGrupoEmpresaCodigo", query = "SELECT p FROM Pedidocompra p WHERE p.grupoEmpresaCodigo = :grupoEmpresaCodigo"), @NamedQuery(name = "Pedidocompra.findByFormaPagamentocodigo", query = "SELECT p FROM Pedidocompra p WHERE p.formaPagamentocodigo = :formaPagamentocodigo"), @NamedQuery(name = "Pedidocompra.findByDtPedido", query = "SELECT p FROM Pedidocompra p WHERE p.dtPedido = :dtPedido"), @NamedQuery(name = "Pedidocompra.findByFuncionariofcMatriculaSolicitante", query = "SELECT p FROM Pedidocompra p WHERE p.funcionariofcMatriculaSolicitante = :funcionariofcMatriculaSolicitante"), @NamedQuery(name = "Pedidocompra.findByLgLoginautorizacao", query = "SELECT p FROM Pedidocompra p WHERE p.lgLoginautorizacao = :lgLoginautorizacao"), @NamedQuery(name = "Pedidocompra.findByValorTotal", query = "SELECT p FROM Pedidocompra p WHERE p.valorTotal = :valorTotal"), @NamedQuery(name = "Pedidocompra.findByStatusPedido", query = "SELECT p FROM Pedidocompra p WHERE p.statusPedido = :statusPedido")})
public class Pedidocompra implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "numeroPedido", nullable = false)
private Integer numeroPedido;
@JoinColumn(name = "grupo_empresa_codigo", nullable = false)
@ManyToOne
private Grupo grupoEmpresacodigo;
@ManyToOne
@JoinColumn(name = "formaPagamento_codigo", referencedColumnName="codigo", nullable = false)
private Formapagamento formasPagamento;
@Column(name = "dtPedido")
@Temporal(TemporalType.DATE)
private Date dtPedido;
@ManyToOne
@Column(name = "fcMatricula", nullable = false)
private Funcionario solicitante;
@Column(name = "lgLogin", nullable=false)
private Integer autorizacao;
@Column(name = "valorTotal")
private Double valorTotal;
@Column(name = "statusPedido", nullable = false)
private int statusPedido;
@ManyToOne
@JoinColumn(name = "empresa_codigo", nullable = false)
private Fornecedor fornecedor;
@ManyToOne
@JoinColumn(name = "Projeto_codigo", referencedColumnName = "codigo")
private Projeto projeto;
private Integer proximoNumero;
Bean Fornecedor
@Entity
@Table(name = "fornecedor")
@NamedQueries({@NamedQuery(name = "Fornecedor.findByEmpresacodigo", query = "SELECT f FROM Fornecedor f WHERE f.empresacodigo = :empresacodigo"), @NamedQuery(name = "Fornecedor.findByNomeFantasia", query = "SELECT f FROM Fornecedor f WHERE f.nomeFantasia = :nomeFantasia")})
public class Fornecedor implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "Empresa_codigo", nullable = false)
private Integer empresacodigo;
@Column(name = "nomeFantasia")
private String nomeFantasia;
@JoinTable(name = "fornecedor_has_produto", joinColumns = {@JoinColumn(name = "Fornecedor_Empresa_codigo", referencedColumnName = "Empresa_codigo")}, inverseJoinColumns = {@JoinColumn(name = "Produto_codigo", referencedColumnName = "codigo")})
@ManyToMany
private Collection<Produto> produtocodigoCollection;
@JoinColumn(name = "Empresa_codigo", referencedColumnName = "codigo", insertable = false, updatable = false)
@OneToOne
private Empresa empresa;
@OneToMany(cascade=CascadeType.ALL,mappedBy="fornecedor")
private Collection<Pedidocompra> pedidoCompra;
JSP:
<p>Fornecedor:<br>
<html:select property="pedidoCompra.fornecedor">
<html:option value="">--- Selecione ---</html:option>
<html:options collection="pedidoCompra.fornecedor" property="fornecedor_Empresa_codigo" labelProperty="fornecedor_nomeFantasia"/>
</html:select>
Erro:
root cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find bean under name pedidoCompra.fornecedor
Pessoal, qualquer ajuda eu agradeço.