2009-07-11 42 views
0

我在使用struts2項目中的表達式語言和struts標籤時遇到了問題。以下jsp文件的代碼片段說明了我的問題。水果對象由一個servlet傳遞。我知道錯誤不是來自servlet,因爲當我註釋掉表單代碼時,它正確地打印出每個水果。Struts標記和表達式語言

<c:forEach var="fruit" items="${fruits}"> 
    <c:out value="${fruit}"/> 
    <s:form> 
     <s:checkbox label="${fruit}"></s:checkbox> 
    </s:form> 
</c:forEach> 

這不起作用,並返回以下錯誤:「根據TLD或標籤文件屬性指令,屬性標籤不接受任何表述」。

我想知道的是,有沒有辦法以類似的優雅方式做到這一點,不需要表達式語言?我真的想爲我的jsp頁面使用struts標籤。我也試過%{fruit}沒有運氣。

回答

0

我建議您仔細閱讀Struts標籤的文檔。

您的代碼失敗,因爲s:checkbox標籤不接受表達式。它應該只是一個簡單的標籤,如下所示

<s:checkbox label="Male" name="male" value="true" /> 
<s:checkbox label="Female" name="male" /> 

對於上例中s:checkboxlist可能會更好。有關更多信息,請參閱http://struts.apache.org/2.0.6/docs/checkboxlist.html