在action 使用request.setAttribute
set一个map 在jsp页面能不能用c标签 取得键对应的值?
类似于 map.get(key) 的实现。

解决方案 »

  1.   

    <c:out value="${map[\"key\"]}"
      

  2.   

    怎将得到的值 给一个变量 或者怎么遍历
    这样是取到了,可我map里面的值时list 怎么遍历这个list
    求解
      

  3.   

    你先判断下是单个还是list,再进行相应处理。
      

  4.   

    这是action List list = new CrmModuleAjaxAction().firstLevelModuleList();
    Map child = new HashMap();
    for (Iterator iterator = list.iterator(); iterator.hasNext();) {
    CrmModule c = (CrmModule) iterator.next();
    child.put((String)c.getCrmModuleId(), new CrmModuleAjaxAction()
    .twoLevelModuleList(c.getCrmModuleId()));
    }
    request.setAttribute("list", list);
    request.setAttribute("child", child);
    return mapping.findForward("index");jsp页面先遍历list
    map的key是 list里面bean的属性
    现在的问题是 怎么通过key 找到map里面对应的list 赋给某个变量或者怎么遍历list
      

  5.   


    <c:forEach items="${list}" var="list" >
    <c:forEach items="${child}" var="map">
    <c:if test="${map.key} eq ${list.crmModuleId}">
    <c:out value="${map.key}" />
    <c:forEach items="${map.value}" var="childList">
    ${childList.crmModuleName}
    </c:forEach>
    </c:if>
         </c:forEach>
    </c:forEach>
    这个方法有错吗?为什么我页面没输出
      

  6.   

    EL表达式有问题吧:
    试一下这个:<c:if test="${map.key  eq list.crmModuleId">            <c:forEach items="${list}" var="list" >
                    <c:forEach items="${child}" var="map">
                        <c:if test="${map.key eq list.crmModuleId"> <!--这样写试一下-->
                            <c:out value="${map.key}" />
                            <c:forEach items="${map.value}" var="childList">
                                ${childList.crmModuleName}
                            </c:forEach>
                        </c:if>
                     </c:forEach>
                </c:forEach>
      

  7.   

     <c:forEach items="${list}" var="list" >
                    <c:forEach items="${list.mapValue}" var="map">
                        <c:if test="${map[\"key\]!=null}">
                            ${map[\"key\]                        
                        </c:if>
                     </c:forEach>
                </c:forEach>
      

  8.   

    解决了,谢谢各位。<c:forEach items="${list}" var="list" >
    <c:forEach items="${child}" var="map">
    <c:if test="${fn:containsIgnoreCase(fn:trim(map.key),fn:trim(list.crmModuleId))}" var="flag">
    <c:forEach items="${map.value}" var="childList">

    </c:forEach>
    </c:if>
     </c:forEach>
    </c:forEach>
      

  9.   

         <c:forEach items="${list}" var="list" >
                    <c:forEach items="${child}" var="map">
                        <c:if test="${map.key eq list.crmModuleId}">
                            <c:out value="${map.key}" />
                            <c:forEach items="${map.value}" var="childList">
                                ${childList.crmModuleName}
                            </c:forEach>
                        </c:if>
                     </c:forEach>
                </c:forEach>