2012-10-16 3 views
0

정수 속성을 포함하는 bean을 폼에 바인딩 할 때 폼이 표시 될 때 필드의 값은 0입니다.이 값은 정수 기본값이므로 정상입니다.바이든 폼 바인딩 예외

물론
com.vaadin.data.Property$ConversionException: java.lang.reflect.InvocationTargetException 
    at com.vaadin.data.util.MethodProperty.convertValue(MethodProperty.java:695) 
    at com.vaadin.data.util.MethodProperty.setValue(MethodProperty.java:664) 
    at com.vaadin.ui.AbstractField.setValue(AbstractField.java:495) 
    at com.vaadin.ui.AbstractTextField.changeVariables(AbstractTextField.java:242) 
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.changeVariables(AbstractCommunicationManager.java:1460) 
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1404) 
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1329) 
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:761) 
    at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:318) 
    at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:501) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.vaadin.data.util.MethodProperty.convertValue(MethodProperty.java:692) 
    ... 22 more 
Caused by: java.lang.NumberFormatException: For input string: "" 
    at java.lang.NumberFormatException.forInputString(Unknown Source) 
    at java.lang.Integer.parseInt(Unknown Source) 
    at java.lang.Integer.<init>(Unknown Source) 
    ... 27 more 

내가 필요에 따라 필드를 설정하여이를 방지 할 수 있습니다 내가 필드의 0을 삭제하고 다음 양식 필드에 초점을 둘 때 는하지만 (setImmediate = TRUE), 나는 불쾌한 예외가 그러나 그것은 내가 원하는 것이 아닙니다. 나는 Vaadin에 아주 새로운 무엇인가 놓치 느냐?

감사합니다

+0

숫자가 필요하지만 시스템에서 숫자로 변환 할 수없는 문자열 (빈 문자열로 보임)을 제공하고있는 것처럼 보입니다. – Jaiwo99

+0

당신의 숫자 필드를'int' 대신'Integer'로 묶으십시오. 기본 유형은 없지만 Object! 양식의 일부 코드를 보여주십시오. – Jaiwo99

답변

0

어쩌면 정수 래퍼와 textField.setNullRepresentation을 ("")를 사용하여; 도움이 될 것입니다

+0

이것은 가능성이 있지만 모든 숫자 (int 또는 float) 특성에 맞게 bean을 수정해야한다는 것을 의미합니다. 나는 피하고 싶습니다. – user1469130

+0

TextField에 'null'값이있는 경우 해결책이되어서는 안됩니다. 그것은 또한 "null"을 보여준다. – Jaiwo99

관련 문제