list<实体类>嵌套list<实体类>,必须保证嵌套的实体类里面有这个list对象,把这个list<实体类>当做一个对象

这是需要解析的数据,并把这些数据封装成list<实体类>对象,传给前台

<root>
<RETURN_CODE>0</RETURN_CODE>
<RETURN_DESC>成功!</RETURN_DESC>
<RETURN_INFO>
<order_info>
<so_nbr>7004519</so_nbr>
<cust_id>2028814</cust_id>
<appl_date>2019-03-21 15:27:56</appl_date>
<compl_date>null</compl_date>
<deal_staff_name>null</deal_staff_name>
<deal_staff_mobile>null</deal_staff_mobile>
<compl_phenom>无法打开互动电视页面</compl_phenom>
<fault_reason>null</fault_reason>
<book_date>2019-04-19 14:00:00</book_date>
<book_time>14:00--18:00</book_time>
<run_sts>待处理</run_sts>
<deal_log>
<deal_info>
            <deal_time>2019-03-29 08:58:27</deal_time><deal_type>领单</deal_type><deal_name>王超群</deal_name><deal_mobile>null</deal_mobile>
          </deal_info>
<deal_info>
            <deal_time>2019-03-29 09:00:04</deal_time><deal_type>回单</deal_type><deal_name>王超群</deal_name><deal_mobile>null</deal_mobile>
          </deal_info>
<deal_info>
            <deal_time>2019-03-22 17:01:57</deal_time><deal_type>定单生成</deal_type><deal_name>系统</deal_name><deal_mobile>null</deal_mobile>
          </deal_info>
</deal_log>
</order_info>
<order_info>
<so_nbr>7004505</so_nbr>
<cust_id>2028814</cust_id>
<appl_date>2019-04-19 08:48:50</appl_date>
<compl_date>null</compl_date>
<deal_staff_name>null</deal_staff_name>
<deal_staff_mobile>null</deal_staff_mobile>
<compl_phenom>整体网速慢</compl_phenom>
<fault_reason>null</fault_reason>
<book_date>2019-04-19 08:30:00</book_date>
<book_time>08:30--12:00</book_time>
<run_sts>待处理</run_sts>
<deal_log>
<deal_info>
            <deal_time>2019-04-19 08:49:02</deal_time><deal_type>定单生成</deal_type><deal_name>系统</deal_name><deal_mobile>null</deal_mobile>
          </deal_info>
</deal_log>
</order_info>
</RETURN_INFO>
</root>

下面是实体类,为了节省空间get、set方法没写;如果不写toString()方法,看不到数据

public class OrderInfo {

    /**
* 定单号
*/
private String soNbr; /**
* 客户证号
*/
private String custId; /**
* 受理时间
*/
private String applDate; /**
* 完成时间
*/
private String complDate;/**
* dealLogInfo
*/
private List<DealLogInfo> dealLogInfo; }
public class DealLogInfo {

    /**
* 操作时间 yyyy-mm-dd hh24:mi:ss
*/
private String dealTime; /**
* 操作类型
*/
private String dealType; /**
* 操作人
*/
private String dealName; /**
* 操作人联系方式
*/
private String dealMobile; }

逻辑代码,不全

List<OrderInfo> orderList = new ArrayList<OrderInfo>();
//存储到list实体类集合
OrderInfo or = new OrderInfo();
orderList.add(or);
or.setApplDate(appl_date);
or.setBookDate(book_date);
or.setBookTime(book_time); List<DealLogInfo> dealInfoList = new ArrayList<DealLogInfo>();
DealLogInfo deal = new DealLogInfo();
dealInfoList.add(deal);
for (Element element : dealList) {
deal.setDealTime(deal_time);
deal.setDealType(deal_type);
deal.setDealName(deal_name);
deal.setDealMobile(deal_mobile);
}
or.setDealLogInfo(dealInfoList);
request.setAttribute("orderList", orderList);

前台取值

遇到的错误:

el表达式获取list数据报错:java.lang.NumberFormatException:For input string: "xxx"

后来查询资料,是由于list会默认将后面的数据当做下标读取,会出现这个情况

错误代码:

<c:forEach items="${orderList}" var="orderList" >
<ul >
<li>
<div>客户证号:</div>
<div>${orderList.custId}</div>
</li>
<li>
<div>故障现象:</div>
<div>${orderList.complPhenom}</div>
</li>
</ul>
<ul>
<li class="title color-6">派单</li>
<li class="detail color-9">
<p>${orderList.dealLogInfo.dealTime}</p>
</li>
</ul>
</c:forEach>

正确代码

只要标明下标或者再次foreach遍历roles的list就可以了

<c:forEach items="${orderList}" var="orderList" >
<ul >
<li>
<div>客户证号:</div>
<div>${orderList.custId}</div>
</li>
<li>
<div>故障现象:</div>
<div>${orderList.complPhenom}</div>
</li>
</ul>
<c:forEach items="${orderList.dealLogInfo}" var="dealLogInfo">
<ul>
<li class="title color-6">派单</li>
<li class="detail color-9">
<p>${dealLogInfo.dealTime}</p>
</li>
</ul>
</c:forEach>
</c:forEach>

页面需要引入c标签代码,否则也会爆这个错误

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!doctype html>
<html lang="en">
<%
String openId = request.getAttribute("openId") == null ? "" : request.getAttribute("openId").toString();
String area_id = request.getAttribute("area_id") == null ? "" : request.getAttribute("area_id").toString();
String customercode = request.getAttribute("cust_id") == null ? "" : request.getAttribute("cust_id").toString(); %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

list<实体类>互相嵌套和前台取值问题的更多相关文章

  1. ZT: C#不建类直接Json解析与取值

    C#不建类直接Json解析与取值 2017年10月19日 15:58:22 圆圆娃哈哈 阅读数:701    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn. ...

  2. c#利用反射实现对类中的常量进行取值和对应常量的注释

    C#利用反射实现对类中的常量进行取值和对应常量的注释 项目示例:https://gitee.com/dhclly/IceDog.GenerateErrorCode 因为业务需要,项目中有大量的错误码, ...

  3. mybatis 一对一 映射实体类、嵌套查询

    一对一 在SysUser 类中增加SysRole字段.1.sql语句将role.role_name映射到role.roleName上. 2.还可以在XML 映射文件中配置结果映射.<result ...

  4. java中遍历实体类属性和类型,属性值

    public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...

  5. Springboot在包含有参构造方法的类中使用@Value注解取值

    我们在Springboot中经常使用@Value注解来获取配置文件中的值,像下面这样 @Component class A { @Value("${user.value}") pr ...

  6. springmvc的ModelMap,前台取值

    利用 ${user.id}或者‘${user.id}’都是可以直接获取到的,不过前提是在jsp页面的script脚本中,而在引用的js文件中是不可以使用的,因为${}是jsp的el标签. 利用 ${u ...

  7. 对深层嵌套对象进行取值&赋值

    需求如下: let obj = { foo: { bar: { name: 'biz' } } }; // 输出 'biz' this.getObj(obj, 'foo.bar.name'); obj ...

  8. 0005SpringBoot中用Junit测试实体类中绑定yml中的值

    1.编写SpringBoot的引导类 package springboot_test.springboot_test; import org.springframework.boot.SpringAp ...

  9. C#获取一个实体类的属性名称、属性值

    using System.Reflection; Type t = obj.GetType();//获得该类的Type foreach (PropertyInfo pi in t.GetPropert ...

随机推荐

  1. what?iView的DropDown没有element的split-button?提issure?等不及了,自己实现一个

    开始正文之前,有必要先说自己实现这个组件的必要性描述. 话说大家做表格时,增删查改按钮都是放在哪里的?最简单的方式应该是这样: 是不是感觉奇丑无比啊,于是改成了这样: 但是这种操作按钮一多后就没位置放 ...

  2. lotus domino 软件学习网站(自己收藏的)

    lotus domino 软件学习网站(自己收藏的) 我学习lotus domino时间也不是很长,相比较学习lotus,学习java的时间还是比较长的,刚开始看网上的说法都是不看好lotus的, 但 ...

  3. Winfon 页签切换及窗体控件自适应

    由于公司的业务调整,最近不仅开发bs,还有不熟悉的cs,人手也不足,项目还多,对于cs来说,算是小白,虽然是一个人,也是硬着头皮写,拖拽控件,自定义控件.一个项目下来,对cs有了很深的认识,这里好好感 ...

  4. 手把手教你如何安装Pycharm

    手把手教你如何安装Pycharm——靠谱的Pycharm安装详细教程     今天小编给大家分享如何在本机上下载和安装Pycharm,具体的教程如下: 1.首先去Pycharm官网,或者直接输入网址: ...

  5. Keepalived配置文件详解

    global_defs { router_id LVS_$prio #节点唯一标识,通常为hostname } local_address_group laddr_g1 { ${lvs_node} # ...

  6. How to using Piwis Tester II code Porsche rear end electronics

    V18.100 Piwis Tester II Diagnostic Tool For Porsche With CF30 Laptop High Quality Top 7 Reasons to G ...

  7. war包安装jenkins

    转自:https://blog.51cto.com/bigboss/2129358 系统环境: CentOS 7.5 1804 IP:192.168.1.3 关闭selinux.firewalld j ...

  8. MySQL复制表-SELECT INTO FROM

    基础Table: mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+------ ...

  9. BottomNavigationBarItem fixed

    BottomNavigationBar( type: BottomNavigationBarType.fixed, onTap: (value){ if more then 3 items,, use ...

  10. HL-D793G七位蓝色+PT6311驱动

    和之前那块一起买的.又画了这个屏幕驱动,还画了灯丝电源驱动,和以前画的stm8核心板在JLC拼板. 亚光黑颜色,不单独收钱! 切好水洗吹干! 忘记给排针加丝印,手写代之. 焊接的时候,脑子发热,以为把 ...