卧去年买了个表 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 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的