gpt4 book ai didi

java - Spring 中对 Map 的值进行 URLEncode

转载 作者:行者123 更新时间:2023-12-01 12:38:58 25 4
gpt4 key购买 nike

我有一个 spring bean,它从应用程序上下文中获取预定义的 HashMap 值。

<util:map map-class="java.util.HashMap" id="keyValues">
<entry key="key1" value= "value1"/>
<entry key="key2" value= "value2"/>
<entry key="key3" value= "value3"/>
<entry key="key4" value= "value4"/>
</util:map>

到目前为止,这个 HashMap 从未包含非英文字符。但现在添加了一个具有中文文本的新键值(value4)。此文本在应用程序中中断并显示“??????”。

我也尝试过设置tomcat编码,但这没有帮助。此外,这可能不是一个合适的解决方案,因为它可能会破坏现有的值(value)观。

在使用这些值的java类中,如果我使用URLEncode.encode(value4);,它就可以正常工作。

我的问题是,有什么办法让spring为我做URLEncode吗?这是为了避免进行 java 更改,而只需更改 applicationContext.xml。

提前致谢。

最佳答案

我会尝试这样的事情:

<bean id="strVal" class="java.net.URLEncoder" factory-method="encode">
<constructor-arg value="value4" />
</bean>

假设该方法是静态的(我猜你使用自己的类进行编码)然后传递引用:

<util:map map-class="java.util.HashMap" id="keyValues">
<entry key="key1" value= "value1"/>
<entry key="key2" value= "value2"/>
<entry key="key3" value= "value3"/>
<entry key="key4" value-ref = "strVal"/>
</util:map>

但是如果您需要编码更多值,那么编写自己的工厂类来生成带有编码值的 HashMap 可能会更容易

关于java - Spring 中对 Map 的值进行 URLEncode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25301872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com