struts形成循环vs jstl循环

时间:2014-06-06 14:36:19

标签: jsp jstl struts-1

我希望进一步理解struts form loop vs jstl loop的限制。

例如,我有这个迭代循环:

<logic:iterate id="displayObj" name="mercurySubscriptionForm" property="displayObjects">
                        <logic:notEqual name="displayObj" property="dataTypeId" value="100">
                        <tr>
                            <td colspan="2"></td>
                            <td colspan="3" class="formConf"><bean:write name="displayObj" property="description" /></td>
                        </tr>
                        <tr valign="top">
                            <td width="30%" class="formOpt"><bean:write name="displayObj" property="fieldName" />:</td>
                            <td width="1%">&nbsp;</td>
                            <bean:define id="maxLength" name="displayObj" property="maxLength"/>
                            <%
                                String mxStr = String.valueOf(maxLength);
                            %>

                            <logic:notEqual name="displayObj" property="maxLength" value="-1">
                                <td colspan="3" class="formConf"><html:text name="displayObj" property="value" maxlength="<%= mxStr %>" /></td>
                            </logic:notEqual>
                            <logic:equal name="displayObj" property="maxLength" value="-1">
                                <td colspan="3" class="formConf"><html:text name="displayObj" property="value" maxlength="20"/></td>
                            </logic:equal>

                        </tr>
                    </logic:notEqual></logic:iterate>

注意这一行:

<logic:notEqual name="displayObj" property="dataTypeId" value="100">

如果dataTypeId只能是100,那么这是有效的,并且是一个奇异的条件。但是,不显示数据类型为200或300的项目有新的限制。我试图在循环中实现它们:

<logic:equal name="displayObj" property="dataTypeId" value="200"></logic:equal>
<logic:equal name="displayObj" property="dataTypeId" value="300"></logic:equal>

然而这种嵌套逻辑似乎不起作用,因为struts仍然会吐出200和300值,因此我使用JSTL代替它并且运行良好..但是有人知道为什么嵌套条件逻辑不能使用struts表格?

1 个答案:

答案 0 :(得分:0)

您应该嵌套两个标记以创建AND条件:

<logic:notEqual name="displayObj" property="dataTypeId" value="200">
    <logic:notEqual name="displayObj" property="dataTypeId" value="300">
          //Code to be displayed here
    </logic:notEqual>
</logic:notEqual>