2014-03-07 113 views
0

我在JSP中有下面的代碼。問題是,當我運行此代碼,我得到以下例外:OptionTag類型中的方法setValue(String)不適用於參數(Object)

The method setValue(String) in the type OptionTag is not applicable for the arguments (Object). 

有沒有人有想法?

<html:select property="selectedServices" name="specificStoreForm" multiple="true" styleClass="services"> 
    <logic:iterate id="service" name="services" property="selectedServices"> 
    <bean:define id="textVal" name="service" property="value" toScope="request"/> 
    <html:option value="<%=textVal%>"> 
    <bean:write name="service" property="label"/> 
    </html:option> 
    </logic:iterate> 
</html:select> 
+0

的異常,因爲我加入代碼更改像」> – Narayan

回答

1

documentation<bean:define>標籤結果判定爲Object類型的,如果你不指定value屬性。 <html:option>標籤僅適用於傳入的值爲String類型的情況。

使用EL(表達式語言)來獲取值來代替:

<html:option value="${textVal}"> 
    ... 
</html> 

你也可以只使用<html:optionsCollection>標籤並沒有明確地迭代:發生

<html:select property="selectedServices" name="specificStoreForm" multiple="true" styleClass="services"> 
    <html:optionsCollection name="services" property="selectedServices" value="value" label="label"/> 
</html:select> 
+0

嗨安東尼,我試過這兩個解決方案。但我沒有得到任何例外,而是轉發到默認錯誤頁面 – Narayan

+0

@ user3392877並且?聽起來應該有第二部分。他們中的任何一個工作?如果不是,發生了什麼,爲什麼不是你所期望的? –

+0

我沒有看到任何異常,因爲它看起來兩個實現所需的值都沒有到來。所以它轉發到默認錯誤頁面 – Narayan

相關問題