Java 如何基于列表的第一个元素迭代列表-使用struts 2标记

Java 如何基于列表的第一个元素迭代列表-使用struts 2标记,java,list,struts2,iterator,Java,List,Struts2,Iterator,我是Struts2的新手,我有一张清单 [1,USER,My Profile,profile.action] [2,ADMIN,create User,createuser.action] [2,ADMIN,update User,updateuser.action] 所以我必须像这样填充它 -USER .MyProfile -ADMIN .create user .update user 我试着这样做,但没有得到如上所述: <s:if test="#se

我是Struts2的新手,我有一张清单

[1,USER,My Profile,profile.action]
[2,ADMIN,create User,createuser.action]
[2,ADMIN,update User,updateuser.action]
所以我必须像这样填充它

 -USER
    .MyProfile
  -ADMIN
    .create user
    .update user
我试着这样做,但没有得到如上所述:

<s:if test="#session.rolePermissions != null">
    <s:set var="rowid" value="1"/>    
    <s:iterator value="#session.rolePermissions" var="line">        
        <li>
            <a><s:property value="#line[1]"/></a> <!--  parent -->        
            <ul class="submenu">               
                <li>
                    <a href="<s:property value="#line[3]"/>">
                        <s:property value="#line[2]"/> 
                    </a>
                </li>
            </ul>        
        </li>
    </s:iterator>    
</s:if>

  • 
    
    但是你应该为这样的情况创建一个对象结构


    最后,对于安全策略,最好使用Spring security之类的工具,而不是重新发明一个有缺陷的轮子。

    我似乎不理解你的问题。你到底想达到什么目的。让你的问题更加清晰,列表应该使用struts2标签在UL中显示[该列表是单个列表的列表,如上所示]@UchennaNwanyanwu
    <s:if test="#session.rolePermissions != null">
        <s:set var="rowid" value="1"/>
        <ul>
        <s:iterator value="#session.rolePermissions" var="line" status="ctr">
    
          <!-- CHECK PREVIOUS VALUE -->
          <s:if test="%{#line[0]!=#previousValue}" >
              <!-- SET PREVIOUS VALUE -->
              <s:set var="previousValue" value="#line[0]" />
    
                <s:if test="#ctr.index>0"></li></s:if> 
            <li>
                <a><s:property value="#line[1]"/></a> <!--  parent -->
          </s:if>
                    <ul class="submenu">
                        <li>
                            <a href="<s:property value="#line[3]"/>">
                                <s:property value="#line[2]"/> 
                            </a>
                        </li>
                    </ul>        
        </s:iterator>    
            </li>
        </ul>
    </s:if>