list<实体类>互相嵌套和前台取值问题
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<实体类>互相嵌套和前台取值问题的更多相关文章
- ZT: C#不建类直接Json解析与取值
C#不建类直接Json解析与取值 2017年10月19日 15:58:22 圆圆娃哈哈 阅读数:701 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn. ...
- c#利用反射实现对类中的常量进行取值和对应常量的注释
C#利用反射实现对类中的常量进行取值和对应常量的注释 项目示例:https://gitee.com/dhclly/IceDog.GenerateErrorCode 因为业务需要,项目中有大量的错误码, ...
- mybatis 一对一 映射实体类、嵌套查询
一对一 在SysUser 类中增加SysRole字段.1.sql语句将role.role_name映射到role.roleName上. 2.还可以在XML 映射文件中配置结果映射.<result ...
- java中遍历实体类属性和类型,属性值
public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...
- Springboot在包含有参构造方法的类中使用@Value注解取值
我们在Springboot中经常使用@Value注解来获取配置文件中的值,像下面这样 @Component class A { @Value("${user.value}") pr ...
- springmvc的ModelMap,前台取值
利用 ${user.id}或者‘${user.id}’都是可以直接获取到的,不过前提是在jsp页面的script脚本中,而在引用的js文件中是不可以使用的,因为${}是jsp的el标签. 利用 ${u ...
- 对深层嵌套对象进行取值&赋值
需求如下: let obj = { foo: { bar: { name: 'biz' } } }; // 输出 'biz' this.getObj(obj, 'foo.bar.name'); obj ...
- 0005SpringBoot中用Junit测试实体类中绑定yml中的值
1.编写SpringBoot的引导类 package springboot_test.springboot_test; import org.springframework.boot.SpringAp ...
- C#获取一个实体类的属性名称、属性值
using System.Reflection; Type t = obj.GetType();//获得该类的Type foreach (PropertyInfo pi in t.GetPropert ...
随机推荐
- postgresql 自定义聚合函数
方法1 CREATE OR REPLACE FUNCTION public.sfun_test1( results numeric[], val numeric) RETURNS numeric[] ...
- es7,es8
ES7新特性 ES7在ES6的基础上添加了三项内容:求幂运算符(**).Array.prototype.includes()方法.函数作用域中严格模式的变更. Array.prototype.incl ...
- Linux 下 ls -l 命令执行显示结果的每一列含义【转载】
转自:zhuoya_的博客 原文地址>>https://blog.csdn.net/zhuoya_/article/details/77418413
- 爬微信好友签名和QQ好友签名
先说如何爬微信好友签名,主要使用itchat,这个库提供直接的api来获取好友信息,只要用正则过滤出就行了.说一下步骤,就不贴代码了.# 登陆# 获取好友列表# 提取签名# jieba分词# word ...
- sql*loader以及oracle外部表加载Date类型列
Oracle sqlldr LOAD DATAINFILE *INTO TABLE testFIELDS TERMINATED BY X'9'TRAILING NULLCOLS( c2 &quo ...
- 通过KSoap三方插件解析WebService接口方法
话不多说,正文如下: 1.在lib中放入ksoap2的jar包并导入 2.在xml 配置文件中加入: <!-- 访问网络的权限 --> <uses-permission androi ...
- VS2110。VC++编译错误"error LNK2005: 已经在 XXX.obj 中定义的问题"
有时候我们会在头文件当中定义一些全局变量或者全局函数,这种做法会比较方便,但有时候会出现“编译错误"error LNK2005: 已经在 XXX.obj 中定义的问题"的链接问题. ...
- 【做题】POI2011R1 - Plot——最小圆覆盖&倍增
原文链接 https://www.cnblogs.com/cly-none/p/loj2159.html 题意:给出\(n\)个点,你需要按编号将其划分成不超过\(m\)段连续的区间,使得所有每个区间 ...
- CentOS7攻克日记(三) —— 安装Python3.6
我是在EVERNOTE上面写的,本来格式是有代码段的,结果复制上来就没有了,所以会有一点乱,我就不调整了 我主要安装的是python环境,这一篇主要解决一下python的问题.在这里给个建议,安装 ...
- pyhon-request之repsonse的常用方法reponse.text和reponse.content的区别
1. requests在python2 和 python3中通用,方法完全一样 2. request简单易用 requests的作用 作用:发送网络请求,返回响应数据 用法 response = re ...