Java 百里香地图<;字符串,对象>;映射键中的迭代和非英语字符
我有Spring,Thymeleaf,HTML5网页。若Map对象包含非英语字符,则在遍历Map时会遇到问题Java 百里香地图<;字符串,对象>;映射键中的迭代和非英语字符,java,spring,thymeleaf,Java,Spring,Thymeleaf,我有Spring,Thymeleaf,HTML5网页。若Map对象包含非英语字符,则在遍历Map时会遇到问题 所有字符编码过滤器/解析器/转换器都已设置并强制为UTF-8 假设我有以下设置: 控制器: @RequestMapping(value = "/app", method = { RequestMethod.GET, RequestMethod.POST }) public String view(ModelMap model, @RequestParam(value = "foo",
@RequestMapping(value = "/app", method = { RequestMethod.GET, RequestMethod.POST })
public String view(ModelMap model, @RequestParam(value = "foo", required = false) Integer foo) {
MapDTO mapDto = new MapDTO();
Map<String, List<Foo>> mapFoo ... // populate map etc.
model.add("mapDto", mapDto.setMapFoo(mapFoo))
return foo == null ? VIEW : VIEW + " :: fooFragment"
}
@RequestMapping(value=“/app”,method={RequestMethod.GET,RequestMethod.POST})
公共字符串视图(ModelMap模型@RequestParam(value=“foo”,required=false)整数foo){
MapDTO MapDTO=新的MapDTO();
Map mapFoo…//填充Map等。
model.add(“mapDto”,mapDto.setMapFoo(mapFoo))
返回foo==null?视图:视图+“::fooFragment”
}
以及用于测试目的的模板:
.. page ..
<div th:fragment="fooFragment" id="fooFragment">
..
<th:block th:each="fooMap : ${mapDto.mapFoo}">
<th:block th:each="item,row : ${fooMap.value.fooList}">
<p th:text="${item.val}"</p> <!-- working OK -->
<p th:text=" ${fooMap.value.fooList[__${row.index}__].idrValueName} "></p> <!-- working OK -->
<input th:field="*{mapDto.mapFoo[__${fooMap.key}__].fooList[__${row.index}__].val} "></p><!-- And this is working -->
<p th:text="${mapDto.mapFoo[__${fooMap.key}__].fooList[__${row.index}__].val} "></p><!-- FAILING ON THIS -->
</th:block>
</th:block>
..
</div>
.. rest of the page ..
。。页
..
mapDto.mapFoo[Ā].傻瓜[0].val
此表达式包含重音字符Ā
。查看的源代码,重音字符清楚地表示为标记化的无效候选者
负责解析表达式的Spring EL与这个标记器紧密耦合,因此我认为没有现成的方法来允许重音字符的标记化。我很确定这是不允许的(例如,它可能会破坏框架的其他部分),所以我建议您按照框架的要求,删除表达式中的重音字符。mapDto.mapFoo[Ā]。傻瓜[0]。val
此表达式包含重音字符Ā
。查看的源代码,重音字符清楚地表示为标记化的无效候选者
负责解析表达式的Spring EL与这个标记器紧密耦合,因此我认为没有现成的方法来允许重音字符的标记化。我很确定这是不允许的(例如,它可能会破坏框架的其他部分),因此我建议您按照框架的要求,删除表达式中的重音字符。而不是[solved]回答您的问题-。而不是[solved]回答您的问题-。