Ola a todos do Forum, estou a dias tentando resolver um problema do meu projeto, nao consigo salvar nada na tabela equipamentos usando agregacao
de objetos que na classe Cadequipamento possui um atributo do tipo Cadusuario que é a minha classe onde tenho o nome do usuario,
fiz um teste removendo a agregacao e funcionou certinho tudo adicionar,editar,remover perquisar mais nao e o certo, ao tentar salvar
recebi no console a msg :
[color=red]WARNING: There are some unhandled FacesMessages, this means not every FacesMessage had a chance to be rendered.
These unhandled FacesMessages are:
- “j_id_jsp_1462597661_1:cadusuario”: O valor não é uma opção válida.[/color]
Tentei colocar esse converterObjeto
[color=blue]public class ObjectConverter implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value != null) {
return component.getAttributes().get(value);
}
return null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value != null
&& !"".equals(value)) {
component.getAttributes().put(value.toString(), value);
return value.toString();
}
return "";
}
}
[/color]
E recebi outra msg:
[color=red]An Error Occurred:
org.apache.jasper.el.JspELException: /equipamento/equipamento.jsp(97,14) ‘#{cadequipamentoBean.cadequipamento.cadusuario}’ Cannot convert 14 of type class java.lang.Integer to class br.com.solicitacao.model.Cadusuario
Caused by:
org.apache.jasper.el.JspELException - /equipamento/equipamento.jsp(97,14) ‘#{cadequipamentoBean.cadequipamento.cadusuario}’ Cannot convert 14 of type class java.lang.Integer to class br.com.solicitacao.model.Cadusuario
[/color]
Pagina equipamento.jsp
Diretorio: WebContent\equipamento
Classe: br.com.solicitacao.control.CadequipamentoBean (Faces-config.xml) cadequipamentoBean.cadequipamento
Classe: br.com.solicitacao.control.CadusuarioBean (Faces-config.xml) cadusuarioBean.cadusuariositem
[color=blue]<h:messages showDetail="#{true}" showSummary="#{false}" />
<h:selectOneMenu id=“cadusuario” immediate=“true” converter=“converterObjeto”
value="#{cadequipamentoBean.cadequipamento.cadusuario}">
<f:selectItems value="#{cadusuarioBean.cadusuariositem}" />
</h:selectOneMenu>[/color]
Classe da SelectItem: br.com.solicitacao.control.cadusuarioBean
Metodo: cadusuariositem
[color=darkblue]public List listausuarios() throws SQLException {
List<SelectItem> cadusuariosList = new ArrayList<SelectItem>();
PreparedStatement stmt = connection.prepareStatement("SELECT * FROM cad_usuario");
ResultSet rs = stmt.executeQuery();
cadusuariosList.add(new SelectItem("","-Selecionar Usuario-"));
while (rs.next()) {
// adicionando o objeto à lista
cadusuariosList.add(new SelectItem(rs.getInt("id_usuario"), rs.getString("nm_usuario")));
}
rs.close();
stmt.close();
return cadusuariosList;
} [/color]
Minha Classe EquipamentoDAO
[color=blue]public String adiciona(Cadequipamento cadequipamento) throws SQLException {
PreparedStatement stmt = this.connection.prepareStatement("REPLACE INTO cad_equipamento(id_equipamento,nm_equipamento,id_usuario) values (?, ?, ?)");
// seta os valores cadusuario
stmt.setInt(1,cadequipamento.getEqId());
stmt.setString(2,cadequipamento.getEqNome());
stmt.setInt(3,cadequipamento.getCadusuario().getUsId());
// executa
stmt.execute();
stmt.close();
return "";
}
[/color]
Desde já agradeço a todos
Márcio Henrique
Fortaleza - CE