Erro ComboBox Cannot find bean under name

2 respostas
shenn
eae galera, estou com um erro que não tenho ideia onde esta.. então eu apenas quero que pegar um combo do banco de dados.. mas esta dando esse erro estranho..
// erro
javax.servlet.jsp.JspException: Cannot find bean under name listaMarcas
// meu codigo html
<html:form action="Action?method=inicio">
	Selecione uma Marca do Carro
	<html:select property="idMarca" styleId="idMarca">
		<html:option value="" styleId="idMarca">
			Marca
		</html:option>
		<html:options collection="listaMarcas" name="MarcaModelo" property="nomeMarca" labelName="nomeMarca" />
	</html:select>
</html:form>
//meu struts config
<struts-config>
	<form-beans>
		<form-bean name="MarcaModelo" type="br.MarcaModelo"></form-bean>
	</form-beans>
	
	<action-mappings>
		<action path="/Action" type="br.Action" parameter="method" name="MarcaModelo" input="/index.jsp" scope="session">
			<forward name="retorno" path="/index.jsp"/>
		</action>
	</action-mappings>
</struts-config>
// minha action
	public ActionForward inicio(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)throws Exception {

		MarcaModelo marcaModelo = (MarcaModelo) form;
		MarcaDao marcaDao = new MarcaDao();
		List<MarcaModelo> listaMarcas = marcaDao.RecuperarMarcas();
		request.setAttribute("listaMarcas", listaMarcas);

		return mapping.findForward("retorno");
	}
//meu form
private String idModelo;
private String nomeModelo;
private String idMarca;
private String nomeMarca;
private List<MarcaModelo> listaMarca;
private List<MarcaModelo> listaModelo;

// get e set
// meu metodo no dao
public List<MarcaModelo> RecuperarMarcas() {
		String sql = "SELECT * FROM tb_marca";
		try {
			PreparedStatement ps = conexao.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();
			List<MarcaModelo> listaMarcas = new ArrayList<MarcaModelo>();
			
			while (rs.next()){
				
				MarcaModelo marca = new MarcaModelo();
				marca.setIdMarca(rs.getString("id"));
				marca.setNomeMarca(rs.getString("nome"));
				
				listaMarcas.add(marca);
			}
			
			rs.close();
			System.out.println("Sucesso no metodo Listar Marcas");
			return listaMarcas;
		} catch (Exception e) {
			System.out.println("erro no metodo listar marca");
			e.printStackTrace();
		}
		return null;
	}

2 Respostas

C

Sua List no Form está “listaMarca”, na página e no setAtributte está “listaMarcas”

jlsoliveirajr
<html:options collection="listaMarcas" name="MarcaModelo" property="nomeMarca" labelName="nomeMarca" />

Note que você colocou “listaMarcas”, mas declarou no seu form como “listaMarca”, o erro diz isso, que não tem um listaMarcas declarado no formBean ^^

Criado 25 de setembro de 2011
Ultima resposta 26 de set. de 2011
Respostas 2
Participantes 3