Parece que o erro é no PROPERTY do SELECT que é igual a modelo.
Estou precisando implementar algo parecido, antes de tentar implementar no próprio sistema, criei um projetinho no Struts de exemplo para tentar fazer e estou com problemas. Segue abaixo alguns códigos
MyModel - Possui Apenas um Atributo chamado nome
public class MyModel implements Serializable {
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
MyJavaBean - Poderia entender ele como um bean que será persistido no banco de dados, ele possui o atrituto MyModel
public class MyJavaBean implements Serializable {
private MyModel myModel;
public MyModel getMyModel() {
return myModel;
}
public void setMyModel(MyModel myModel) {
this.myModel = myModel;
}
}
TesteForm é a classe do meu ActionForm, ela possui o atributo MyModel
public class TesteForm extends ActionForm {
private MyModel myModel;
public MyModel getMyModel() {
return myModel;
}
public void setMyModel(MyModel myModel) {
this.myModel = myModel;
}
}
E por fim minha Action do Struts, aqui eu adicionei os valores na mão, pois são apenas testes.
public class TesteAction extends Action {
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) {
TesteForm testeForm = (TesteForm) form;
ArrayList arrayList = new ArrayList();
MyModel myModel;
myModel = new MyModel();
myModel.setNome("Alex");
arrayList.add(myModel);
testeForm.setMyModel(myModel);
myModel = new MyModel();
myModel.setNome("Fernando");
arrayList.add(myModel);
myModel = new MyModel();
myModel.setNome("Priscila");
arrayList.add(myModel);
myModel = new MyModel();
myModel.setNome("Thaís");
arrayList.add(myModel);
request.setAttribute("arrayList",arrayList);
return mapping.findForward("success");
}
}
Da pra ver que eu vou criando os MyModel e jogando em um ArrayList, no final eu jogo o ArrayList no Request. O primeiro MyModel eu adicionei no ActionForm.
Dentro do JSP o código está assim
<html:form action="/teste">
<html:select property="myModel">
<html:optionsCollection name="arrayList" property="myModel.nome"/>
</html:select>
</html:form>
Mas sempre recebo a mensagem de erro
No getter method for property myModel.nome of bean arrayList
Alguem poderia me ajudar?
Já fiz várias coisas mada nada funcionou…
Obrigado
Faça apenas isso:
<html:optionsCollection name=“arrayList” property=“nome”/>
Aí pessoALL,
Valeu pela ajuda o meu funcionou dessa forma:
<html:select property=“desModelo” name=“aparelhoForm”>
<html:options collection =“MODELO” property=“codModelo” labelProperty=“desModelo”/>
</html:select>
Aonde:
desModelo e codModelo são atributos do meu Form;
MODELO é a minha collection recuparada da session e
aparelhoForm está mapeado no struts-config.xml dessa forma: