greensure
2017-04-25 08:43
采纳率: 100%
浏览 5.6k
已采纳

jsp页面不显示数据,但是后台已传输数据库数据

页面上放了一个table, 代码如下

        <div class="panel-body" id="example">
            <table id="detailTable" class="table table-hover">
                <thead>
                    <tr>
                        <th>销售ID</th>
                        <th>产品ID</th>
                        <th>生产时间</th>
                        <th>产品类型</th>
                        <th>备注</th>                 
                    </tr>           
                </thead>
                <tbody>
                        <%-- <c items="${soldId}" var="sd"> --%>
                        <c var="sd">
                            <tr>
                                <td>${sd.soldId}</td>
                                <td>${sd.proId}</td>
                                <td><fmt:formatDate value="${sd.proTime}" pattern="yyyy-MM-dd" /></td>
                                <td>${sd.proType}</td>
                                <td>${sd.remark}</td>                               
                            </tr>
                        </c>
                </tbody>
            </table>            
        </div>

运行得到页面:
图片说明

后台log信息(显示已经获得数据库数据):
图片说明

为啥jsp页面不显示这段数据呢?(用的EL)

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • 点点滴滴的淡淡的 2017-04-25 09:45
    已采纳
     1、后台传过来的变量名是sd吗?
     2、el表达式接受值只适合页面跳转,是否页面跳转?
    
    已采纳该答案
    打赏 评论
  • younghaodaydayupup 2017-04-25 08:50

    后台对象名是不是和JSP的那个对象一致?

    打赏 评论
  • wxjs360 2017-04-25 09:30
                      <c:forEach items="${soldId}" var="sd">
                            <tr>
                                <td>${sd.soldId}</td>
                                <td>${sd.proId}</td>
                                <td><fmt:formatDate value="${sd.proTime}" pattern="yyyy-MM-dd" /></td>
                                <td>${sd.proType}</td>
                                <td>${sd.remark}</td>                               
                            </tr>
                        </c:forEach>
    
    打赏 评论
  • 从微笑开始幸福 2017-04-25 09:32

    检查问题的时候可以看看前台的返回数据,如果前台都没有值,那就是传值的问题了

    打赏 评论
  • greensure 2017-04-26 02:22

    我改了下:
    后台代码:

        public void getSoldDetail(@PathParam("soldId")int soldId,@Context HttpServletRequest request,@Context HttpServletResponse response) 
                throws ServletException, IOException{
    //      SoldDetail soldDetail = soldDetailDao.queryByIdWithProducts(soldId);
            Products products = productsService.getBySoldId(soldId);
            request.setAttribute("products", products);
            request.getRequestDispatcher("/sortable/solddetail.jsp").forward(request, response);    
            System.out.println(products);
        }
    

    这样通过products传值到jsp页面,
    一下jsp代码:




    ${p.soldId}
    ${p.proName}

    ${p.soldNum}
    ${p.price}
    ${p.purchaser}




    运行依然jsp不显示数据
    打赏 评论
  • 点点滴滴的淡淡的 2017-04-26 03:59
    foreach里面是products吗
    
    打赏 评论
  • 我是杰夫啊 2017-04-26 05:07

    是这样

                                <tr>
                                    <td>${soldId.soldId}</td>
                                    <td>${soldId.proId}</td>
                                    <td><fmt:formatDate value="${soldId.proTime}" pattern="yyyy-MM-dd" /></td>
                                    <td>${soldId.proType}</td>
                                    <td>${soldId.remark}</td>                               
                                </tr>
    
    打赏 评论
  • 我是杰夫啊 2017-04-26 05:08

    如果传过来的是一个对象不是list对象集合的话直接变量名调用属性就OK

    打赏 评论
  • greensure 2017-04-26 06:08

    这个问题已经解决了,昨天混乱了,传参不对,根据功能需求修改了下控制层代码:
    关键部分:
    Products products = productsService.getBySoldId(soldId);

    request.setAttribute("products", products);

    改了下页面的:


    ${products.soldId}
    ${products.proId}
    ${products.proName}
    ... ...


    就显示了

    谢谢大家的回答。

    打赏 评论

相关推荐 更多相似问题