卧去年买了个表 2014-03-10 08:27 采纳率: 0%
浏览 2155

如何在JSP页面中,把数组中的TreeSet中的实体存储地址变成实体对象

首先,感谢大家抽时间看我这问题.
问题阐述:
我在做Spring Hibernate和struts整合的实验,之前,我在Action类中已经将要放在页面中的数据,传到JSP页面中,以下是Action类的代码:

 /**
         * 显示所有的商品分类 *
         * 
         * @return
         */
        public void showAllCategory() {
            try {
                List<CategoryDTO> resultList = this.categoryService.showAllCategory();
                this.getRequest().put("initCategoryList", resultList);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

以下是categoryDTO中的类属性

/**
     * 类别编号
     */
    private Long id;

    /**
     * 类别名称
     */
    private String name;

    /**
     * 商品集合
     */
    private Set<ProductQueryDTO> products = new HashSet<ProductQueryDTO>();

    /**
     * 子类别
     */
    private Set<CategoryDTO> categories = new TreeSet<CategoryDTO>();

由于我想弄个导航条,如:家电->电冰箱
所以想在JSP页面中用foreach来循环打印出所有商品,不知道我说的够不够明白,欢迎追问.
问题来了,我先上JSP页面的代码

<c:forEach items="${requestScope.initCategoryList}" var="categoryDTO" varStatus="vs">
                            <ul>
                                <a ><strong>${categoryDTO.name }</strong></a>
                                <c:forEach items="${categoryDTO.categories } " var="category" varStatus="vs1">
                                    <li><a >${category}</a></li>
                                </c:forEach>
                            </ul>
                    </c:forEach>

但是,我只能把最基本的父类的商品种类打印出来,而家电下面则显示实体DTO的物理地址,可以看以下图
CSDN移动问答
我想问,怎样才能把这个子种类中的种类名字弄出来?${category.name}会报错.

我目前是这样的
CSDN移动问答

  • 写回答

1条回答

  • 卧去年买了个表 2014-03-11 05:12
    关注

    已经解决.

    由于foreach里面的变量是javascript的,所以是不能将实体赋值给var.

    jsp页面的代码变成这样就OK

    <%
                    List<CategoryDTO> categoiesDTOList = (List<CategoryDTO>)session.getAttribute("initCategoryList");
                    for(int i = 0 ; i < categoiesDTOList.size() ; i ++){
                        CategoryDTO dto = categoiesDTOList.get(i);
                    %>
                        <ul>
                            <a ><strong><%=dto.getName() %></strong></a>
                            <%
                                Set<CategoryDTO> childrenDTOSet = dto.getCategories();
                                for(CategoryDTO child : childrenDTOSet){
                                    out.print("<li><a href='showProductByCategoryAction.action?productQueryDTO.categoryQueryDTO.id="+child.getId()+"'>"+child.getName()+"</a></li>");
                                }
                            %>
                        </ul>
                    <%      
                        }
                    %>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码