Struts标签和表达语言

时间:2009-07-11 00:54:37

标签: java struts2 expression jsp-tags

我在struts2项目中使用表达式语言和struts标签时遇到了问题。来自jsp文件的以下代码片段说明了我的问题。 fruits对象由servlet传递。我知道错误不是来自servlet,因为当我注释掉表单代码时,它会正确打印出每个水果。

<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}而没有运气。

1 个答案:

答案 0 :(得分:0)

我建议更仔细地阅读Struts标签的文档。

您的代码失败,因为s:复选框标签不接受表达式。它应该只是一个简单的标签,如下所示

<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