Boa noite pessoal,
Estou batendo cabeça a vários dias com o mesmo problema e não consigo sair do lugar.
Estou tentando popular um combo no JSP usando a estrutura de Action + ActoinForm + JPA, seguem meus códigos.
JSP
<p>Fornecedor:<br>
<!-- propriedade que armazena o que o usuário escrever. -->
<html:select property="idFornecedor">
<option name="" value=""> --- </option>
<!-- popula os valores da combo com a lista de fornecedores. -->
<html:optionsCollection property="fornecedores" value="empresacodigo" label="nomeFantasia" />
</html:select>
Action
public class AdicionaCompraAction extends Action {
/* forward name="success" path="" */
private final static String SUCCESS = "success";
/**
* This is the action called from the Struts framework.
* @param mapping The ActionMapping used to select this instance.
* @param form The optional ActionForm bean for this request.
* @param request The HTTP Request we are processing.
* @param response The HTTP Response we are processing.
* @throws java.lang.Exception
* @return
*/
@Override
@SuppressWarnings("unchecked")
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//log
System.out.println("Tentanto criar um novo pedido...");
@SuppressWarnings("unchecked")
List listfornecedor = new FornecedorDAO().listFornecedor();
PedidoCompraForm formularioCompra = (PedidoCompraForm) form;
request.setAttribute("fornecedores", listfornecedor);
Pedidocompra compras = formularioCompra.getPedidoCompra();
PedidoCompraDAO dao = new PedidoCompraDAO();
dao.salvar(compras);
return mapping.findForward("ok");
}
ActionForm
public class PedidoCompraForm extends ActionForm {
private static final long serialVersionUID = 6277201993742385240L;
private Pedidocompra pedidoCompra = new Pedidocompra();
private String idFuncionario = "";
private List funcionariosolicitante;
private String idFornecedor = "";
private List fornecedores;
private String idProjeto = "";
private List projetos;
//get e set
Erro 01
org.apache.jasper.JasperException: An exception occurred processing JSP page /novaCompra.jsp at line 45
42: <html:select property="idFornecedor">
43: <option name="" value=""> --- </option>
44: <!-- popula os valores da combo com a lista de fornecedores. -->
45: <html:optionsCollection property="fornecedor" value="empresacodigo" label="nomeFantasia" />
46: </html:select>
47: </p>
48: <p>Solicitante:</p>
root cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: Failed to obtain specified collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.novaCompra_jsp._jspService(novaCompra_jsp.java:100)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
Erro02
org.apache.jasper.JasperException: An exception occurred processing JSP page /novaCompra.jsp at line 45
42: <html:select property="idFornecedor">
43: <option name="" value=""> --- </option>
44: <!-- popula os valores da combo com a lista de fornecedores. -->
45: <html:optionsCollection property="fornecedores" value="empresacodigo" label="nomeFantasia" />
46: </html:select>
47: </p>
48: <p>Solicitante:</p>
root cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: No getter method for property: "fornecedores" of bean: "br.com.erpciriello.compras.struts.form.PedidoCompraForm"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.novaCompra_jsp._jspService(novaCompra_jsp.java:100)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
Qualquer luz já ajuda.
valeu…