1

是否可以将原始类型(如布尔值)作为属性?

pageContext.setAttribute("boolValue", boolValue);

进而

<tiles:put name="boolValue" beanName="boolValue" type="boolean" />

在我使用的另一个 Jsp 中:

<tiles:useAttribute name="boolValue" id="boolValue" classname="boolean" />

我收到此错误:

PWC6199: Generated servlet error:
string:///BaseBudgetLayout_jsp.java:124: incompatible types
found   : <nulltype>
required: boolean
PWC6199: Generated servlet error:
string:///BaseBudgetLayout_jsp.java:125: inconvertible types
found   : java.lang.Object
required: boolean
4

1 回答 1

2

属性映射不能将基元作为值保存。鉴于它需要java.lang.Object,Java 5 自动装箱会默默地将原boolean语变成一个java.lang.Boolean实例。这在技术上根本不是 a boolean,因此您的 Tiles 标签中的类型/类名将不匹配。

相反,使用

<tiles:put name="boolValue" beanName="boolValue" type="java.lang.Boolean" />

<tiles:useAttribute name="boolValue" id="boolValue" classname="java.lang.Boolean" />
于 2012-12-21T17:20:04.743 回答