以JSP数字格式显示列表对象异常

时间:2017-07-25 04:27:31

标签: jsp spring-mvc

在Jsp页面

<c:forEach var="trans" items="${transactionlist}">
            <tr scope="row" >
            <td>${trans.Acc_No}</td>
            <td>${trans.Ftrans_Acc}</td>
            <td>${trans.deposit}</td>
            <td>${trans.withdraw}</td>
            <td>${trans.Balance}</td>
            <td>${trans.Transid}</td> 
            </c:forEach>
          </tr>

在控制器中

@RequestMapping(value="miniStatement/{accno}",method=RequestMethod.GET)
    public ModelAndView MViewStatement(@PathVariable String accno,ModelMap map){
        map.addAttribute("transactionlist",managerservice.listViewCustomer(accno));
        System.out.println(managerservice.listViewCustomer(accno).toString());
    //in printing above statement I am getting list object of my Transaction 
        return new ModelAndView("PrintMiniStatement");
    }

但是我在jsp页面中遇到了数字格式异常 然后我试着这个: 在控制器

@RequestMapping(value="miniStatement/{accno}",method=RequestMethod.GET)
    public ModelAndView MViewStatement(@PathVariable String accno,ModelMap map){
        map.addAttribute("transactionlist",managerservice.listViewCustomer(accno).get(0));
        System.out.println(managerservice.listViewCustomer(accno).toString());
        return new ModelAndView("PrintMiniStatement");
    }

在Jsp中

 <c:forEach var="trans" items="${transactionlist}">
            <tr scope="row" >
            <td>${trans}</td>
            </c:forEach>
          </tr>

我正在水平单行,而休息数据我无法获取虽然我知道我确实获得了索引0值,但我的问题是如何在表格形式的jsp页面中检索此列表数据

在Dao我正在检索前10名

@Override
    public List<Transaction> listViewCustomer(String accno) {
        Session session = sessionFactory.openSession(); 
    String sql="Select * from transactions where Acc_No="+accno+" limit 10"+";";
    SQLQuery query=session.createSQLQuery(sql);



return query.list();

}

1 个答案:

答案 0 :(得分:0)

  1. 您没有使用 HQL 查询。
  2. 您错误地指定了return type
  3. 解决方案1 ​​:将SQL查询更改为HQL查询

    .setMaxResults(10)用于限制目的

    @Override
    public List<Transaction> listViewCustomer(String accno) {
        Session session = sessionFactory.openSession(); 
        // Add your desc criteria in the query some  'order by'
        String HQL="from transactions t where t.Acc_No= :accno";
        Query query=session.createSQLQuery(HQL)
                .setMaxResults(10)
                .setParameter("accno",accno);
        return query.list();
    }
    

    解决方案2 :将return type查询更改为List<Object []>并将其映射到服务方法中的交易类或...

    @Override
    public List<Object[]> listViewCustomer(String accno) {
        Session session = sessionFactory.openSession(); 
        String sql="Select * from transactions where Acc_No="+accno+" limit 10";
        SQLQuery query=session.createSQLQuery(sql);
        return query.list();
    }