关于EL表达式的小问题
有一个person类
public class Person { private String Id="124"; public String getId() {
return Id;
} public void setId(String id) {
Id = id;
}
}在JSP中用EL
<%@page pageEncoding="GB18030" isELIgnored="false"%>
<%
Person person=new Person();
request.setAttribute("person",person);
%>
${person.Id}<br> 这样是会访问不到????为什么-------------------------------------------------
但是如果我把person类的Id变为id,get/set方法也相应调整;在用${person.id}<br> 这样又可以访问成功。我知道EL表达式底层执行时调用get方法,谁能说说底层具体是怎么实现的
有一个person类
public class Person { private String Id="124"; public String getId() {
return Id;
} public void setId(String id) {
Id = id;
}
}在JSP中用EL
<%@page pageEncoding="GB18030" isELIgnored="false"%>
<%
Person person=new Person();
request.setAttribute("person",person);
%>
${person.Id}<br> 这样是会访问不到????为什么-------------------------------------------------
但是如果我把person类的Id变为id,get/set方法也相应调整;在用${person.id}<br> 这样又可以访问成功。我知道EL表达式底层执行时调用get方法,谁能说说底层具体是怎么实现的
getId的后面是Id,Id的第一位改成小写就是id了
不是以成员变量来获得的,这点要注意
欢迎加入java技术群:74955800
默认用的是get和set方法后面的名字,而且第一字母改成小写
getId的后面是Id,Id的第一位改成小写就是id了
不是以成员变量来获得的,这点要注意======================
我知道用小写是可以得到的,但是为什么大写却拿不到,
正如你说的:默认用的是get和set方法后面的名字,而且第一字母改成小写,我想知道为什么要改为小写,
我猜是通过反射,在底层拼接了一个字符串,然后调用getId方法的
不知道我猜的对吗??能在讲讲吗