el表达式的首字母大小写问题

EL表达式获取对象属性的原理是这样的:
以表达式${user.name}为例
EL表达式会根据name去User类里寻找这个name的get方法,此时会自动把name首字母大写并加上get前缀,一旦找到与之匹配的方法,El表达式就会认为这就是要访问的属性,并返回属性的值。
所以,想要通过EL表达式获取对象属性的值,那么这个属性就必须有与之对应的get方法。

所以这中间不关私有属性的事,调用的是私有属性的get/set方法。如果你不写get/set方法,那EL表达式就拿不到值了。set方法是给你后台设置值用的。
public String getName(){
        return "aaaaaaaa";
}

public String getABcccc(){
        return "abccccccc";
    }
public String getABCD(){
        return "ABCD";
}
<br>${name} ---------${Name}会直接报错,el表达式抛出异常,按照下行的结果,当el表达式首字母大写,会判断第二个字母大小写,小写抛异常,大写则直接拼接get,形成getter方法
<br>${ABcccc}--------${aBcccc}不能获取值
<br>${ABCD}

//总结

当el表达式首字母大写,会判断第二个字母大小写,小写,抛异常;大写,则直接拼接get,形成getter方法当el表达式首字母小写,会判断第二个字母大小写,大写,必须第一个字母大写;否则无法获取值el首字母大写,至少第二个字母必须大写。
时间: 2024-10-24 09:11:28

el表达式的首字母大小写问题的相关文章

[Go语言]从Docker源码学习Go——init()方法和identifier首字母大小写区分

init()方法 如果想在一个go文件里,进行一些初始化的工作,可以把代码放到init()方法中. init()方法先被执行. func init() { // initialization of package } 注意:它是没有输入参数和返回参数的. identifier首字母大小写区分 当identifier(比如constant,variable,type,function,struct field,...)的命名首字母是大写的话,那表示这个identifier在包外是可以见的: 类似p

字符串整体大小写转换,首字母大小写

最近用到了首字母大写的功能,一般的思路是采用charAt(0)结合Character的toUpperCase方法转换,最后再拼成一个字符串的方式来实现 日前看到一个大神的代码,觉得效率比较高,有兴趣的朋友可以看一下 代码如下: /** * 首字母大写转换 * @param str 源字符串,首字母不支持中文 * @return */ public static String firstCharUpper(String str){ if(str!=null&Character.isLowerCas

ASP.NET Core中返回 json 数据首字母大小写问题

asp.net core  默认输出的json数据首字母会改成小写,考虑可能是为了前端js的书写习惯,毕竟js 操作大小写敏感. 在Startup类的ConfigureServices()方法中进行配置,DefaultContractResolver() 原样输出,返回的 json 与后台定义一致 // This method gets called by the runtime. Use this method to add services to the container. public

FastJson 输出值 首字母大小写问题

解决方案: 1. 如果你的项目由多个模块且为分布式部署, 则可考虑使用设置System.property 2. 一般只是极少数的代码出现此情况, 那么建议直接在你的单例Service初始化时, 在静态块中直接改变TypeUtils的变量值, 如果用Spring的话可以使用InitializingBean进行处理 TypeUtils.compatibleWithJavaBean = true; 3. 此变量是public的注意要在一个地方进行改动, 避免线程安全问题 项目组使用FastJson,

Java c# 跨语言Json反序列化首字母大小写问题

C#标准是首字母大写,Java规范是首字母小写,在序列化成Json之后,反序列化会出现反序列化失败的问题.. 从C#反序列化成JavaBean的时候通过如下注解可以直接解决该问题 @JsonNaming(value = PropertyNamingStrategy.UpperCamelCaseStrategy.class) 将该注解放到对应的class上,即可从大写首字母的Json串,反序列化成JavaBean. 原文地址:https://www.cnblogs.com/eviltuzki/p/

springboot项目接收json转对象,首字母大小写,个别参数获取不到解决方案

只说一下本人在项目中遇到的情况,springboot项目接收参数,有时候一些特殊字符却无法解析封装到实体,获取的为null 比如实体首字母小写的属性 aMagicBook,类似这种的参数通过@RequestBody 实体就无法接收到,后来参考网上资料,加上了 jackson依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind<

.NET Core WebApi中返回 json 数据首字母大小写问题

public void ConfigureServices(IServiceCollection services) { services.AddMvc().AddJsonOptions(opt => { opt.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();//json字符串大小写原样输出 }); } 原文地址:https://www.cnblo

vue监听属性完成首字母大小写转换

监听属性 watch 侦听属性的作用是侦听某属性值的变化,从而做相应的操作,侦听属性是一个对象,它的键是要监听的对象或者变量,值一般是函数,当你侦听的元素发生变化时,需要执行的函数,这个函数有两个形参,第一个是当前值,第二个是变化后的值. 代码实现: 效果图: 原文地址:https://www.cnblogs.com/onerose/p/10099031.html

EL表达式的语法与应用

EL(是Expression Language的缩写),使用EL对JSP输出进行优化,可以使得页面结构更加清晰,代码可读性高,也更加便于维护. EL表达式的语法: 语法:$(EL 表达式) $  和 ()缺一不可 提示:EL表达式不区分字母的大小写.可以访问对象的属性.使用EL表达式之前,必须将对象保存到作用域中. 示列:${news.title}   或者 ${news["title"]}     访问数组newsList[0] "."操作符  与 "[