Java 如何使用动态名称访问会话属性?

Java 如何使用动态名称访问会话属性?,java,jstl,el,Java,Jstl,El,这是一个非常简单的问题示例,我试图通过使用JSTL/EL动态构造属性的名称来引用会话bean。会话属性的名称是“userBean”,它有一个带有相应getter/setter的属性“name” 这很有效 用户:${userBean.name} ${userBean}.name 这不起作用 用户:${userBeanName} 结果是: 这很有效 用户:ACOSTA销售公司 这不起作用 用户:000101.name 第二个是调用我的userBean类的toString()方法并连接该+“.nam

这是一个非常简单的问题示例,我试图通过使用JSTL/EL动态构造属性的名称来引用会话bean。会话属性的名称是“userBean”,它有一个带有相应getter/setter的属性“name”

这很有效
用户:${userBean.name}
${userBean}.name
这不起作用
用户:${userBeanName}
结果是:

这很有效
用户:ACOSTA销售公司

这不起作用
用户:000101.name

第二个是调用我的userBean类的toString()方法并连接该+“.name”


对此肯定有一个非常简单的答案;然而,以我有限的知识,我无法理解。

代码示例令人困惑,与标题和第一段中所述的问题无关。因此,我将忽略代码示例,只回答标题:

如何使用动态名称访问会话属性

您可以使用
${sessionScope}
获取所有会话属性的映射。您可以使用大括号表示法作为属性名
${sessionScope[attributeName]}
对变量求值

因此,这应该做到:


用户名:${sessionScope[attributeName].name}