当前位置: 首页 > 知识库问答 >
问题:

从引用bean的map获取键值

吕钧
2023-03-14

我试图从引用bean获取映射键值。

我有两个班级。一个包含两个Map,另一个需要从这个类中读取键值一个集合自己的字段。

@Data
public class ClassOne{

    private Map<String, Object> xxx;
    private Map<String, Object> yyy;

}
@Data
public class ClassTwo{
    private String zzz;
}

XML应用程序上下文

<bean id="ClassTwo" class="...">
<property name="zzz" value="#{ClassOne.${xxx['key']} == 'myString' ? 'otherString' : false}"></property>
</bean>

<bean id="ClassOne" class="...">
<property name="xxx" value=""></property>
</bean>

我的意图是引用beanClassOne获取Map并按键获取Map值

编辑:

对于这个应用程序上下文,我得到了

   <bean id="ClassTwo" class="com.interns.pittaci.model.label.ClassTwo">
        <!--- for property name zzz from ClassTwo set value based on map called xxx with key 'test' inside ClassOne -->
        <property name="zzz" value="#{ClassOne.${xxx['test']} == 'test' ? 'test1 ' : test2}"></property>
    </bean>

以下错误消息:

线程“main”org.springframework.beans.factory.BeanDefinitionStoreException中的异常:在类路径资源[applicationContext.xml]中定义的名称为“ClassTwo”的无效bean定义:无法解析值中的占位符“xxx['test']”#{ClassOne.${xxx['test']} == 'test'?'test1': test2}";嵌套异常java.lang.IllegalArgumentException:无法解析值中的占位符“xxx['test']”#{ClassOne.${xxx['test']} == 'test'?'test1': test2}"

共有1个答案

吴宝
2023-03-14

我认为问题是在访问映射时使用${},因为在访问类属性时没有必要使用${}。尝试#{ClassOne.xxx['key'] == 'myString'?'另类字符串': false}

除此之外,在应用程序上下文中定义的三元运算符.xml返回一个布尔值,以防映射中不存在该键,并尝试将其分配给 String 属性

 类似资料:
  • 我的代码如下: 但是数据类型是

  • 问题内容: 大家好。我试图在HttpSessionListener中获取会话bean,以便在用户注销或会话过期时可以删除用户在应用程序中创建的一些文件。我猜测会话bean不存在,因为会话已被破坏。我希望仍然以某种方式删除这些文件。谢谢您的帮助。 致BalusC:我又回到了您以前想到的方法。在我的应用程序中,将字节流传输给用户并不灵活。我发现我需要在页面上的ajax中做很多事情,如果我必须发送非aj

  • 本文向大家介绍Map获取键值,Map的几种遍历方法总结(推荐),包括了Map获取键值,Map的几种遍历方法总结(推荐)的使用技巧和注意事项,需要的朋友参考一下 Map获取键值 Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象。 Map的接口 Map---实现Map Map.Entry--Map的内部类,描述Map中的按键/数值对。 SortedMap---扩

  • 问题内容: 给定GenericRecord,与对象相比,推荐的检索类型化值的方法是什么?我们是否应该强制转换值,如果是这样,从Avro类型到Java类型的映射是什么?例如,Avro Array == Java Collection ; 和Avro String == Java Utf8 。 由于每个GenericRecord都包含其架构,因此我希望找到一种类型安全的方法来检索值。 问题答案: 阿夫

  • 问题内容: 我有 我想按 位置 获得 职位, 而不是关键 职位 。 我不想使用迭代。 还有其他方法可以基于索引获取Value吗? 问题答案: 您无法获得基于索引的值,只是那样行不通。一种解决方法是根据您的值创建一个新列表,然后根据索引获取值。

  • 问题内容: 我目前正在与Redis一起玩,我有几个问题。是否可以从键数组中获取值? 例: 当我返回时。我可以遍历此列表并获得用户:1,获得用户:2。但这感觉不对,有没有办法让所有与会者的信息一目了然? 在rails中,我会做这样的事情: 但是在redis中我不能,因为它返回键,而不是存储在该键上的实际对象。 谢谢 :) 问题答案: 在项目上循环并同步访问每个元素不是很有效。使用Redis 2.4,