【问题标题】:jstl c:set to set a bean property results in argument type mismatchjstl c:set 设置 bean 属性导致参数类型不匹配
【发布时间】:2013-05-08 23:40:02
【问题描述】:

我正在尝试使用 c:set 来设置我的 bean 的属性。我的页面顶部有一个标签,如下所示:

<c:set value="true" target="#{patientChartManager}" property="editingForm" />

bean 字段/方法是这样的:

public Boolean getEditingForm() {
    return editingForm;
}


public void setEditingForm(Boolean editingForm) {
    this.editingForm = editingForm;
}

但是,当页面尝试加载时,出现以下异常:

java.lang.IllegalArgumentException: argument type mismatch sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

我尝试将布尔对象更改为布尔原始类型。同样的问题。

但是如果我把我的标签改成这个,它就可以了:

<c:set value="#{'1' eq '1'}" target="#{patientChartManager}" property="editingForm" />

真的,#{'1' eq '1'} 可以是任何结果为真的测试。

最终它满足了我的需求,但感觉就像是一个 hack,eclipse 添加了一个警告,即测试总是会导致 true。

谢谢!

【问题讨论】:

    标签: java jsf-2 jstl


    【解决方案1】:

    你试过了吗:

    <c:set value="#{true}" target="#{patientChartManager}" property="editingForm" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      相关资源
      最近更新 更多