使用ognl in表达式可能会遇到的问题
编程技术  /  houtizong 发布于 3年前   67
package cn;public class A {private Integer id;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((id == null) ? 0 : id.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;A other = (A) obj;if (id == null) {if (other.id != null)return false;} else if (!id.equals(other.id))return false;return true;}}
<%A a1 = new A();a1.setId(1);A a2 = new A();a2.setId(2);List<A> list = new ArrayList();list.add(a1);list.add(a2);request.setAttribute("list", list);%><s:iterator value="#request.list" var="a"><s:property value="#a in #request.list"/><br/></s:iterator></body></html>
期望输出:
true
true
但是实际是:
true
如果配置struts.el.throwExceptionOnFailure=true,那么会得到如下异常:
invalid comparison: cn.A and cn.A - Class: ognl.OgnlOps
File: OgnlOps.java
Method: compareWithConversion
原因在其ognl LanguageGuide 中也说了:
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接