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 ...
随机推荐
- what?iView的DropDown没有element的split-button?提issure?等不及了,自己实现一个
开始正文之前,有必要先说自己实现这个组件的必要性描述. 话说大家做表格时,增删查改按钮都是放在哪里的?最简单的方式应该是这样: 是不是感觉奇丑无比啊,于是改成了这样: 但是这种操作按钮一多后就没位置放 ...
- lotus domino 软件学习网站(自己收藏的)
lotus domino 软件学习网站(自己收藏的) 我学习lotus domino时间也不是很长,相比较学习lotus,学习java的时间还是比较长的,刚开始看网上的说法都是不看好lotus的, 但 ...
- Winfon 页签切换及窗体控件自适应
由于公司的业务调整,最近不仅开发bs,还有不熟悉的cs,人手也不足,项目还多,对于cs来说,算是小白,虽然是一个人,也是硬着头皮写,拖拽控件,自定义控件.一个项目下来,对cs有了很深的认识,这里好好感 ...
- 手把手教你如何安装Pycharm
手把手教你如何安装Pycharm——靠谱的Pycharm安装详细教程 今天小编给大家分享如何在本机上下载和安装Pycharm,具体的教程如下: 1.首先去Pycharm官网,或者直接输入网址: ...
- Keepalived配置文件详解
global_defs { router_id LVS_$prio #节点唯一标识,通常为hostname } local_address_group laddr_g1 { ${lvs_node} # ...
- 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 ...
- war包安装jenkins
转自:https://blog.51cto.com/bigboss/2129358 系统环境: CentOS 7.5 1804 IP:192.168.1.3 关闭selinux.firewalld j ...
- MySQL复制表-SELECT INTO FROM
基础Table: mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+------ ...
- BottomNavigationBarItem fixed
BottomNavigationBar( type: BottomNavigationBarType.fixed, onTap: (value){ if more then 3 items,, use ...
- HL-D793G七位蓝色+PT6311驱动
和之前那块一起买的.又画了这个屏幕驱动,还画了灯丝电源驱动,和以前画的stm8核心板在JLC拼板. 亚光黑颜色,不单独收钱! 切好水洗吹干! 忘记给排针加丝印,手写代之. 焊接的时候,脑子发热,以为把 ...