欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何用EL表达式取私有属性值

程序员文章站 2022-09-05 15:13:46
EL表达式替代JSP页面中数据访问是的复杂编码,简单来说就是使开发者便捷的使用后来传来的数据。${变量名} 即 setAttribute中的值注意:想要这么使用,必须在传值过来的时候使用setAttribute方法上篇文章说过JSP有四个内置对象作用域,如果多个域对象中有同名的变量怎么办呢?默认优先取局部的,即page-request-session-application如何用EL表达式取对象内的私有字段?如果我们创建了一个User类,里面又个private String id字段,只要我们s...

EL表达式替代JSP页面中数据访问是的复杂编码,简单来说就是使开发者便捷的使用后来传来的数据。

${变量名} 即 setAttribute中的值
注意:想要这么使用,必须在传值过来的时候使用setAttribute方法

上篇文章说过JSP有四个内置对象作用域,如果多个域对象中有同名的变量怎么办呢?
默认优先取局部的,即page-request-session-application

如何用EL表达式取对象内的私有字段?
如果我们创建了一个User类,里面又个private String id字段,只要我们setAttribute过,依旧可以在jsp中用${user.id}来取值,这不是违背了我们的常理了吗?私有字段怎么能被直接取出来呢?
原来,只要我们在类中写了getId()方法,那么我们用EL表达式实际上是自动帮我们调用了getId()方法。

程序怎么会知道要调用getId()方法?
当我们写下${user.id}的时候,看上去是取user的属性值,其实是与对象的方法进行了绑定。
使用时会经过以下步骤:
1.自动将id变成Id,i->大写的I
2.然后自动去User类中寻找getId()方法。

换句话说,如果我们在类中定义的是getMyId()方法取id值,那么我们甚至可以把EL表达式写成${user.myId}。

快去试试吧!

本文地址:https://blog.csdn.net/lihaohaocn/article/details/109005429