jstl c:设置为bean属性,导致参数类型不匹配

时间:2013-05-08 23:40:03

标签: java jsf-2 jstl

我正在尝试使用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'}真的可以是导致真实的任何测试。

最终它会导致我的需求得到满足,但感觉就像黑客和日食一样,警告测试总是会产生真实的结果。

谢谢!

1 个答案:

答案 0 :(得分:2)

你试过了吗?

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