2012-12-21 149 views
1

是可能把一個原始類型,如布爾值屬性?Struts 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 
+1

我不這樣做瓷磚,所以我有關於它的內部不完全的想法,但我會嘗試的第一件事就是用'爪哇。 lang.Boolean'改爲type/classname。屬性映射不能將基元保存爲值。從Java代碼開始,Java 5自動裝箱將默默地將其轉換爲「布爾」,它根本不是「布爾」。通常,JSP標籤不會這樣做。至少,這是理論:)在實踐中給它一個嘗試。 – BalusC

+0

非常感謝! :)它現在工作!如果您將此評論作爲回覆,我會將您的回覆作爲首選:) – Vargan

+0

將其重新發布爲答案。 – BalusC

回答

2

屬性地圖也擋不住元作爲價值觀。鑑於需要java.lang.Object,Java 5自動裝箱會默默地將boolean原語變爲java.lang.Boolean實例。這在技術上根本不是boolean,所以Tiles標籤中的類型/類名不匹配。

相反,使用

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

<tiles:useAttribute name="boolValue" id="boolValue" classname="java.lang.Boolean" />