关于jstl EL用法的注意点(java.lang.NumberFormatException: For input string: userName)
在使用jstl tag <c:forEach var="item" items="${managerPurviewList}" begin="0"> 的时候,一般可以用来在页面上展现集合的数据,但是有一点必须要注意的,就是var 和items的含义的问题。
查看api文档,上面只是简单的说明了一下,其实在实现该标签的时候,内部是通过items里面指定的这个集合对象来获取一个Iterator 的,这就是ForEachIterator 。也就是说先把你的items属性的那个集合对象拿出来,然后获取其上面的迭代器,通过该迭代器的next方法得到集合中的第一个元素(当然根据是否配置了start end 和step迭代的方法少有不同),这里就要注意了,获取到第一个元素以后,它会将该元素作为一个通用的object对象赋值给var属性里面指定的那个变量名称,例如你在var属性里面知道var="item",那么这时候i就是一个object对象。
如果你迭代的是一个list<User>这样的自定义对象的list,那么这时候item会得到一个object,而且该object是一个object【】类型,也就是说,会将list里面的每个user对象的属性值get出来,作为一个object再存放到i所引用的那个object里面去,说到这里,大家就应该明白了,其实该标签在处理list<User>类型的集合的展现问题的时候,是简单的将该集合中的每个具体对象的属性值取出来封装成一个个的object,然后放入item这个object数组中去的,所以,我们在前台jsp页面上展现的时候不能使用$(item.userName)这样的方法来得到对应的值,否则会报java.lang.NumberFormatException: For input string: "userName" 这样的异常的,原因就是因为返回的item是一个object的数组,$(item.userName)这种访问方式是不能用来访问数组的,否则在处理的时候jsp引擎会先将userName这个字符串转换成int以确定数组下标,而在转换的时候就会出现字符串“userName”无法转换成int的异常了。
那么我们该怎么取值呢,应该是一下标来访问数组,也就是item【0】,item【1】,这样的方式,这样渠道的值分别是我们User对象的按照定义先后顺序的各个属性值了。
可见,数据类型是很重要的了,使用不同的数据类型来保存值,那么取值的时候就要使用对应的方法来取值了,否则就会报异常了。
转载于:https://www.cnblogs.com/csy8fs/p/4059658.html
关于jstl EL用法的注意点(java.lang.NumberFormatException: For input string: userName)相关推荐
- java.lang.NumberFormatException: For input string: “name”
背景:action中查询出list数据需要在前台进行显示,但根据主键在数据库中查询出的数据list中含有熟悉alist属性为配置表,且支持用户多选,前端通过el表达式显示 前台界面为:<c:fo ...
- swagger报错 java.lang.NumberFormatException: For input string: ““
项目中集成Swagger,每次刷新页面,都给我报一个java.lang.NumberFormatException: For input string: ""的错误,真的是犯强迫症 ...
- java.lang.NumberFormatException: For input string: F
在通过myBatis执行sql时,报错: java.lang.NumberFormatException: For input string: "F" xml中sql内容为: &l ...
- java.lang.NumberFormatException: For input string: “xxxx.“
java.lang.NumberFormatException: For input string: "history." 解决方案: 不是你的代码问题, 去查看自己的数据
- 访问swagger/Knife4j 接口文档报错:java.lang.NumberFormatException: For input string: ““
目录 问题描述 解决过程 问题描述 报异常如下:java.lang.NumberFormatException: For input string: "" 虽然不影响使用,但是每次 ...
- Caused by: java.lang.NumberFormatException: For input string: “?2130969371“
Caused by: java.lang.NumberFormatException: For input string: "?2130969371" 题记报错. 上结论:&quo ...
- java.lang.NumberFormatException: For input string: 解决方案
引起异常的主要原因如下: 1.传参字段和映射字段不一致 2.传参类型和映射类型不一致 3.时间类型转换时间戳长度不一致 4.参数长度和数据库不一致 Service 层代码 public Route f ...
- Failed to build custom metric java.lang.NumberFormatException: For input string: “∞“
背景:计算除法的时候,部分数据计算时报错,报错: Failed to build custom metric java.lang.NumberFormatException: For input st ...
- oozie:java.lang.NumberFormatException: For input string: “30s“
oozie启动报错如下: >>> Invoking Main class now >>>Failing Oozie Launcher, IO error org.a ...
- 线上flink任务重启报错(Hadoop问题)java.lang.NumberFormatException: For input string: “30s“
线上Flink任务重启时,提交任务失败,具体报错如下: 2021-12-31 18:09:19 java.lang.NumberFormatException: For input string: & ...
最新文章
- 泼点冷水,P2P借款限额是不是想的太美好?
- 梯度的直观理解_梯度下降最直观的理解
- 检验Xcode是否被改动过的简单方法,不妨试试!!!
- java什么数组能村浮点数_c脚本怎样把字节数组转换成浮点数
- java.io.IOException: Broken pipe 的异常处理
- html5 输入框有值无效,HTML5基础 input required 输入框内必须有内容
- CodeForces 8D Two Friends 判断三个圆相交
- 【Elasticsearch】Elasticsearch性能调优:千万不要做愚蠢的事
- docker-compose部署Minio
- Python图片转html字符画
- 20175213 2018-2019-2 《Java程序设计》第3周学习总结
- python seo百度_Python与seo,百度关键词相关搜索关键词采集源码
- 人机协作机器人发展趋势_人工智能非万能!智能安防机器人下一站:人机协作...
- oracle数据库应用中实现汉字“同音”查询
- 【linux学习笔记】Linux网络管理综合项目实训任务书
- 《Redis系列第五篇、hset与hget的使用|CSDN创作打卡》
- 挑选开关电源的工作频率是依据什么?
- 笔记——Tensorflow: The Confusing Parts (2)
- vue3前端获取文件md5码
- 【LeetCode】389. 找不同