我正在阅读“Spring MVC,初学者指南”这本书。在一节中,它建议使用矩阵变量来传递一个高价格和低价格。在他们的示例中,声明指定了一个字符串列表作为第二个参数(见下文)。
@MatrixVariable(pathVar="price") Map<String, List<String>> priceParams
但是,由于每个键只有一个值,我想我会尝试声明:
@MatrixVariable(pathVar="price") Map<String, String> priceParams
当我尝试访问与存储在映射
中的特定键相关联的“value”(使用iterator.getKey()
和iterator.getValue()
时,我不断得到运行时的ClassCastException
错误。
当我在debug中检查priceParams时,数据类型显示为LinkedMultiValueMap
,目标映射显示为LinkedHashMap
。
我开始怀疑使用map
声明矩阵变量是不可能的,而只能使用map
声明矩阵变量
以map
形式声明它可以工作,但您必须循环访问list
中的所有条目,即使只有一个条目存在。
如有任何帮助,我将不胜感激
来自文档
如果方法参数类型为map
并且指定了矩阵变量名,则假定有适当的转换策略可用,则矩阵变量值将转换为map
。
如果方法参数为map
或multivalueMap
且未指定变量名,则映射将填充所有矩阵变量名和值。
因此,您需要如下所示进行更新(即删除pathvar
)
@MatrixVariable Map<String, String> priceParams
如果您仍面临任何问题,请在评论中告知
也请参阅本文了解更多信息。
我遇到的情况是,许多键都指向一个值。这种情况源于我正在实现的服务定位器模式- 接口中的每个方法都表示为签名字符串 因此,我需要在用户请求任何匹配键时检索单个值。 从某种意义上说,我需要一个与Guava的MultiMap相反的东西。 我正在寻找最优化的解决方案,因为我的键非常相似,尽管对于特定值是唯一的,我不确定使用像HashMap这样的通用Map实现是否足够有效来处理这种情况。 例如以下所有签名
我问这个问题是关于我的问题: spring单例范围 Spring单例在参考手册中根据每个豆子的容器进行定义。 每个容器意味着如果我们喜欢: Beans.xml: 然后将出来true.Means都指向同一个实例。 对于每个豆子的短语部分,每个容器每个豆子我有点困惑。我在每个豆子的跟随是正确的: 如果我们喜欢 Beans.xml: 那么将显示为false。意味着它们是两个不同的实例?
我目前正在尝试将非常混乱的xml的一部分转换为更具可读性的内容,但当我的代码没有产生我想要的内容时。 我可以获得一些关于我的代码有什么问题以及如何修复它的反馈吗? 输入示例: 我想看到的输出是: 我的代码当前如下所示: 内容没有被正确复制,我不知道为什么?
我想使用Spring MVC 和Hibernate。我不想在所有控制器方法上使用服务层或属性(或者,更确切地说,我希望Spring将它们全部视为事务性)。因此,我想在控制器方法开始使用数据库时启动事务,并在控制器方法返回 ViewAndModel 或回滚事务(如果发生任何错误)时提交事务。此外,我希望视图支持延迟Hibernate加载,例如,如果html模板请求,请在自动提交模式下选择数据。 我知
顺便说一句:javadoc不正确https://docs.spring.io/autorepo/docs/spring-security/4.2.x/apidocs/index.html?org/springframework/security/web/firewall/strithttpfirewall.html 自: 5.0.1 我猜是被倒车了?
今天,我正在研究可从STS仪表板下载的Spring MVC展示 我对Spring 3.2版本引入的新注释@MatrixVariable以及URI路径中Matrix变量的使用有些怀疑。 在我的家中.jsp视图我有以下链接: 此处阅读有关@MatrixVariable注释的官方文档:http://static.springsource.org/spring-framework/docs/3.2.0.M