与tomcat 6一起使用。
查看:<h:inputText>
映射到bean中的double。
我看了,除非我是盲目的,否则我们依靠Tomcat提供的EL。
当在Tomcat 7上运行时,它会抛出:
严重:javax.faces.FacesException: java.lang.IllegalArgumentException:参数类型不匹配 javax.faces.FacesException:java.lang.IllegalArgumentException: 参数类型不匹配 com.sun.faces.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:142)
引起:javax.faces.component.UpdateModelException: java.lang.IllegalArgumentException:参数类型不匹配 javax.faces.component.UIInput.updateModel(UIInput.java:853)at at javax.faces.component.UIInput.processUpdates(UIInput.java:735)at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242) 在 javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242) 在 javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242) 在javax.faces.component.UIForm.processUpdates(UIForm.java:281)at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242) 在 javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242) 在 javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:1231) 在 com.sun.faces.lifecycle.UpdateModelValuesPhase.execute(UpdateModelValuesPhase.java:78) 在com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)... 30多个
引起:java.lang.IllegalArgumentException:参数类型不匹配 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at java.lang.reflect.Method.invoke(未知来源)at dk.bording.inside.util.reflect.Reflection.set(Reflection.java:442)at dk.bording.inside.adapter.entity.MapAdapter.invoke(MapAdapter.java:87) 在 dk.bording.inside.adapter.entity.MapAdapter.put(MapAdapter.java:50) 在javax.el.MapELResolver.setValue(MapELResolver.java:94)at com.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:255) 在 com.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:281) 在org.apache.el.parser.AstValue.setValue(AstValue.java:207)at org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:257) 在 org.jboss.weld.el.WeldValueExpression.setValue(WeldValueExpression.java:64) 在 com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131) 在javax.faces.component.UIInput.updateModel(UIInput.java:818)... 40多个
有什么建议吗?
答案 0 :(得分:0)
我怀疑这是由特定字段接收的输入引起的。 JSF2将根据输入的推断dataType进行隐式转换。即如果该字段收到0
作为您所谓的double
字段的输入,它仍会尝试将其转换为Long
。根据此thread on the same issue中的建议,您应使用<f:convertNumber/>
转换器或将字段绑定到java.lang.Number
。