EL如何自动调用Java类对应方法?以getABC调用场景为例
EL表达式如何识别并调用JavaBean的getter方法?
我在JSP文件中遇到如下代码:
<c:set var="list" value="${actionBean.ABC}"/>,发现它调用了某Java文件中的List<...> getABC(...){}方法。我未找到关于ABC的绑定注解或配置文件路由,想了解EL是如何识别并调用该方法的?是否存在自动添加“get”的方法命名转换机制?
核心结论
EL表达式访问JavaBean属性时,完全遵循JavaBean规范的自动方法命名转换规则,不需要额外的注解或配置。
具体匹配逻辑
当EL解析${actionBean.ABC}时,会按以下规则生成对应的getter方法名:
- 若属性名的首字母为大写(比如这里的
ABC),直接在属性名前拼接get,得到getABC; - 若属性名首字母为小写(比如
userName),则将首字母转为大写后拼接get,得到getUserName。
之后EL引擎会通过反射机制,在actionBean实例中查找匹配该方法名的无参getter方法(注:标准JavaBean规范中getter方法应为无参,若你的getABC(...)带参数,大概率是项目自定义了EL解析逻辑),找到后直接调用并返回结果。
补充说明
这套规则是JavaEE体系中JavaBean和EL表达式的默认约定行为,本质是通过方法命名规范实现属性与getter的绑定,不需要额外的配置文件或注解来关联。
内容的提问来源于stack exchange,提问作者shole
相关产品推荐
相关产品推荐

