Fórum Erro no Converter #409744

24/11/2011

0

Eu faço o cadastro e o programa não da erro nenhum, mas não salva no banco, ai abro o netbeans e tem esse erro

Informações: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_id_jsp_1404141265_3:j_id_jsp_1404141265_5[severity=(ERROR 2), summary=(j_id_jsp_1404141265_3:j_id_jsp_1404141265_5: Validation Error: Value is not valid), detail=(j_id_jsp_1404141265_3:j_id_jsp_1404141265_5: Validation Error: Value is not valid)]
Luiz Silva

Luiz Silva

Responder

Posts

24/11/2011

Davi Costa

Espicifica mais quais os frameworks da sua app, se é web ou desktop....
Arriscaria que é jsf... se for vc vai ter que implementar um converter


att Davi
Responder

Gostei + 0

24/11/2011

Luiz Silva

Davi, é web com jsf, e estou usando converter

public class ContratoConverter implements Converter{

@Override
public Object getAsObject(FacesContext context, UIComponent component, String value)
throws ConverterException{
if(value == null){
return null;
}
return new ContratoDAO().getContrato(Integer.parseInt(value));
}

@Override
public String getAsString(FacesContext context, UIComponent component, Object object)
throws ConverterException{
if(object == null){
return null;
}
Contrato con = (Contrato) object;
return con.getIdcontrato().toString();
}


}

ele carrega meu SelectOneMenu

<h:selectOneMenu value=#{controleQualidadeFace.selectedControleQualidade.contrato}>
<f:selectItems value=#{controleQualidadeFace.contratoControle}/>
<f:converter converterId=ConverterContrato/>
</h:selectOneMenu>

mas na hora de gravar ele não consegue

att Tavinho
Responder

Gostei + 0

25/11/2011

Davi Costa

Ok, declarou o cnverter no faces-config.xml?

att Davi
Responder

Gostei + 0

25/11/2011

Luiz Silva

Sim

<faces-config version=1.2
xmlns=http://java.sun.com/xml/ns/javaee
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd>
<converter>
<converter-id>ConverterContrato</converter-id>
<converter-class>Conversores.ContratoConverter</converter-class>
</converter>

Responder

Gostei + 0

25/11/2011

Luiz Silva

Eu fiz o debug e reparei k ele passa pelo converter e carrega os campos normais, mas depois na hora de salvar ele vai no converter e não converter. acho k o erro pode estar aki.

public List<SelectItem> getContratoControle() {
List<SelectItem> toReturn = new LinkedList<SelectItem>();
for (Contrato con : conDAO.getContratos()) {
toReturn.add(new SelectItem(con,con.getProdutor().getNome())); - ACHO K É AKI
}
return toReturn;
}

Na tela de Controle de Qualidade eu tenho o id do contrato mas quero mostrar o nome do produtor k esta nakele contrato, eu consigo fazer isso, mas na hora de gravar k não da certo

Att Tavinho
Responder

Gostei + 0

25/11/2011

Davi Costa

public List<ltSelectItem> getContratoControle() {
List<SelectItem> toReturn = new LinkedList<SelectItem>();
for (Contrato con : conDAO.getContratos()) {
toReturn.add(new SelectItem(con.getCod(),con.getProdutor().getNome())); // ACHO K É AKI
}
return toReturn;
}

Obviamente esse método con.getCod(), vai ser o seu id....
qdo chegar no converter:

@Override
public Object getAsObject(FacesContext context, UIComponent component, String value)
throws ConverterException{
if(value == null){
return null;
}
return new ContratoDAO().getContrato(Integer.parseInt(value));
}

Vai dar certo.
Testa ai.

abcs att Davi
Responder

Gostei + 0

25/11/2011

Luiz Silva

Se eu colocar

public List<SelectItem> getContratoControle() {
List<SelectItem> toReturn = new LinkedList<SelectItem>();
for (Contrato con : conDAO.getContratos()) {
toReturn.add(new SelectItem(con.getIdcontrato(),con.getProdutor().getNome()));
}
return toReturn;
}

ele da esse erro

java.lang.ClassCastException: java.lang.Integer cannot be cast to Persistente.Contrato
Conversores.ContratoConverter.getAsString(ContratoConverter.java:29)
com.sun.faces.taglib.jsf_core.ConverterTag$BindingConverter.getAsString(ConverterTag.java:103)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:469)
com.sun.faces.renderkit.html_basic.MenuRenderer.renderOption(MenuRenderer.java:502)
com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:757)
com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:811)
com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:335)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)

Att

Tavinho
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
Responder

Gostei + 0

25/11/2011

Luiz Silva

Davi, descobri o erro.
antes minha declaração estava assim

private int idcontrato;

ai deu um erro e troquei para

private Integer idcontrato;

e esqueci de trocar no equals() e hashCode().

Obrigado pela ajuda

Att Tavinho
Responder

Gostei + 0

25/11/2011

Davi Costa

Show de bola cara.
Assim que possível fechar o chamado.

att Davi
Responder

Gostei + 0

28/11/2011

Luiz Silva

bom dia davi, não sei como faço para fechar o post?

att tavinho
Responder

Gostei + 0

29/11/2011

Alexandre

Tavinho, tb estou com problema com o converte (JSF2). Pode dá uma olhada... Estou estudando pela apostila da algaWorks, mais deu esse erro e não sei resolver....

Links do poste:
https://www.devmedia.com.br/forum/java/409959-Erro-no-meu-projeto--JSF-+Hirbenate--Detalhes--.html
http://www.guj.com.br/java/259433-problema-com-jsf-erro-no-jsp/2#1353946

Obrigado
Responder

Gostei + 0

06/12/2011

Dyego Carmo

Resolvido ?


Se sim , poderia fechar o chamado ?

Valeu !
Responder

Gostei + 0

06/12/2011

Luiz Silva

Boa tarde Dyego, esta resolvido sim, mas não sei como faço para fechar o post

Att

Tavinho
Responder

Gostei + 0

20/12/2011

Dyego Carmo

Opa !

Resolvido ? Se sim , poderia fechar o chamado ?


Valeu !
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar