0

与tomcat 6一起工作正常。

视图:<h:inputText>映射到 bean 中的双精度。

我看了看,除非我是盲人,否则我们依赖 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) 处 javax.faces.component.UIInput.processUpdates(UIInput. java:735) 在 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) 在 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) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) ... 还有 30 个

原因:java.lang.IllegalArgumentException:sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java 的参数类型不匹配.lang.reflect.Method.invoke(Unknown Source) 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) 在 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) at org.jboss.weld.el.WeldValueExpression.setValue(WeldValueExpression.java:64) at com.sun.faces .facelets.el.TagValueExpression.setValue(TagValueExpression.java:131) 在 javax.faces.component.UIInput.updateModel(UIInput.java:818) ... 40 更多

有什么建议么?

4

1 回答 1

0

我怀疑这是由特定字段正在接收的输入引起的。JSF2 将根据您输入的推断数据类型进行隐式转换。即,如果该字段接收 a0作为您应该double唯一的字段的输入,它仍会尝试将其转换为 a Long。正如此线程中关于同一问题的建议,您应该使用<f:convertNumber/>转换器或将您的字段绑定到java.lang.Number.

于 2012-09-25T03:02:21.017 回答