Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 jsf2.0&引用;参数类型不匹配“;从自定义数据类型类?_Jsf 2_Illegalargumentexception - Fatal编程技术网

Jsf 2 jsf2.0&引用;参数类型不匹配“;从自定义数据类型类?

Jsf 2 jsf2.0&引用;参数类型不匹配“;从自定义数据类型类?,jsf-2,illegalargumentexception,Jsf 2,Illegalargumentexception,我将为输入字段创建一个自定义数据类型。(见clas“金额”)。 在inputfield“amountId”中设置值确实非常有效。但是,如果我想提交表单并转到另一个页面,那么我会遇到“参数类型不匹配”异常 有人能给我解释一下,为什么我会得到这个例外吗 是否需要转换器将输入值转换为字符串 我是否忘记了Amount类中要实现的一些方法,哪些JSF需要获得这些值 这是我的密码: public class Amount implements Serializable { public Amou

我将为输入字段创建一个自定义数据类型。(见clas“金额”)。 在inputfield“amountId”中设置值确实非常有效。但是,如果我想提交表单并转到另一个页面,那么我会遇到“参数类型不匹配”异常

有人能给我解释一下,为什么我会得到这个例外吗

  • 是否需要转换器将输入值转换为字符串
  • 我是否忘记了Amount类中要实现的一些方法,哪些JSF需要获得这些值
这是我的密码:

public class Amount implements Serializable {
    public Amount(BigDecimal bd){
    }

    public Amount(String s) {
    }

    @Override
    public String toString() {
    }
}



@ManagedBean(name="myBean")
    @RequestScoped
    public class MyBean extends BaseBean {
        private Amount amountValue;
        private UIInput amountValueId;

        public Amount getAmountValue() {
            return amountValue;
        }

        public void setAmountValue(Amount amountValue) {
            this.amountValue = amountValue;
            if (this.amountValueId != null)
                this.amountValueId.setSubmittedValue(amountValue);
        }

        public UIInput getAmountValueIdId() {
            return amountValueId;
        }

        public void setAmountValueId(UIInput amountValueId) {
            this.amountValueId = amountValueId
        }
    }



<h:inputText id="amountValueId" binding="#{myBean.amountValueId}" size="30" value="#{myBean.amountValue}" />




javax.servlet.ServletException: javax.el.ELException: java.lang.IllegalArgumentException: argument type mismatch
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:229)
    org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)


org.apache.myfaces.view.facelets.el.ContextAwareELException: javax.el.ELException: java.lang.IllegalArgumentException: argument type mismatch
    org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.setValue(ContextAwareTagValueExpression.java:166)
    javax.faces.component.UIInput.updateModel(UIInput.java:406)
    javax.faces.component.UIInput.processUpdates(UIInput.java:328)
    javax.faces.component.UIForm.processUpdates(UIForm.java:263)
    javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1469)
    javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1469)
    javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1469)
    javax.faces.component.UIViewRoot._processUpdatesDefault(UIViewRoot.java:1397)
    javax.faces.component.UIViewRoot.access$600(UIViewRoot.java:74)
    javax.faces.component.UIViewRoot$UpdateModelPhaseProcessor.process(UIViewRoot.java:1535)
    javax.faces.component.UIViewRoot._process(UIViewRoot.java:1358)
    javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:806)
    org.apache.myfaces.lifecycle.UpdateModelValuesExecutor.execute(UpdateModelValuesExecutor.java:38)
    org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
    org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
    org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
公共类金额实现可序列化{
公共金额(BigDecimal bd){
}
公共金额(字符串s){
}
@凌驾
公共字符串toString(){
}
}
@ManagedBean(name=“myBean”)
@请求范围
公共类MyBean扩展了BaseBean{
私人金额价值;
私有UIInput amountValueId;
公共金额getAmountValue(){
返回数值;
}
公共无效setAmountValue(金额amountValue){
this.amountValue=amountValue;
如果(this.amountValueId!=null)
this.amountValueId.setSubmittedValue(amountValue);
}
公共UIInput getAmountValueIdId(){
返回amountValueId;
}
public void setAmountValueId(UIInput amountValueId){
this.amountValueId=amountValueId
}
}
javax.servlet.ServletException:javax.el.EleException:java.lang.IllegalArgumentException:参数类型不匹配
javax.faces.webapp.FacesServlet.service(FacesServlet.java:229)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
org.apache.myfaces.view.facelets.el.ContextAwareELException:javax.el.eleException:java.lang.IllegalArgumentException:参数类型不匹配
org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.setValue(ContextAwareTagValueExpression.java:166)
javax.faces.component.UIInput.updateModel(UIInput.java:406)
javax.faces.component.UIInput.processUpdates(UIInput.java:328)
javax.faces.component.UIForm.processUpdates(UIForm.java:263)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1469)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1469)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1469)
javax.faces.component.UIViewRoot.\u processUpdatesDefault(UIViewRoot.java:1397)
javax.faces.component.UIViewRoot.access$600(UIViewRoot.java:74)
javax.faces.component.UIViewRoot$UpdateModelPhaseProcessor.process(UIViewRoot.java:1535)
javax.faces.component.UIViewRoot.\u进程(UIViewRoot.java:1358)
javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:806)
org.apache.myfaces.lifecycle.UpdateModelValuesExecutor.execute(UpdateModelValuesExecutor.java:38)
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)

我认为你应该在你的
中添加转换器。我认为你应该在你的
中添加转换器。哦,一个转换器帮助了我:)非常感谢!!