2009-07-11 3 views
0

У меня возникла проблема с использованием языка выражения и привязки тегов вместе в проекте struts2. Следующий фрагмент кода из файла jsp иллюстрирует мою проблему. Объект плодов передается сервлетом. Я знаю, что ошибка не из сервлета, потому что, когда я комментирую код формы, он правильно распечатывает каждый фрукт.Struts Tags и язык выражений

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

Это не работает, и возвращается следующая ошибка: «В соответствии с TLD или атрибута директивы в файле тегов, атрибутов метки не принимает каких-либо выражений».

Что мне интересно, есть ли способ сделать это в таком же элегантном стиле, который не требует языка выражения? Я действительно хочу использовать теги struts для моей страницы jsp. Я также пытался с% {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 для получения дополнительной информации.