我正在尝试使用 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'} 可以是任何结果为真的测试。
最终它导致我的需求得到满足,但感觉就像一个黑客和 eclipse 添加了一个警告,即测试总是会导致 true。
谢谢!