Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 蒲公英数据表i18n弹簧分解器不工作_Spring_Spring Mvc_Internationalization_Datatables_Dandelion - Fatal编程技术网

Spring 蒲公英数据表i18n弹簧分解器不工作

Spring 蒲公英数据表i18n弹簧分解器不工作,spring,spring-mvc,internationalization,datatables,dandelion,Spring,Spring Mvc,Internationalization,Datatables,Dandelion,我最近开始集成到我的SpringMVC4+Hibernate4+tiles 3项目中 我希望它显示各种语言支持的标题 所以我从这个开始 根据本页的建议,我的标题显示了?消息 我想在列标题中显示Id,但它正在显示???table.header.Id??? 这是说 如果在捆绑包中找不到密钥,则使用???密钥???消息将显示在列标题中 但是我在datatables.properties中添加了以下内容 i18n.locale.resolver=com.github.dandelion.datatabl

我最近开始集成到我的SpringMVC4+Hibernate4+tiles 3项目中

我希望它显示各种语言支持的标题

所以我从这个开始

根据本页的建议,我的标题显示了
消息

我想在列标题中显示
Id
,但它正在显示
???table.header.Id???

这是说

如果在捆绑包中找不到密钥,则使用???密钥???消息将显示在列标题中

但是我在datatables.properties中添加了以下内容

i18n.locale.resolver=com.github.dandelion.datatables.extras.spring3.i18n.SpringLocaleResolver
global.i18n.message.resolver=com.github.dandelion.datatables.extras.spring3.i18n.SpringMessageResolver

还加入了
global_en.properties

table.header.id=id

我还复制了与
global.properties
相同的文件。。但不起作用

我的jsp文件包含

<datatables:table id="users" ...>
   <datatables:column titleKey="table.header.id" property="userId" />
<datatables:table />

我的资源文件夹结构是

我应该把
table.header.id=id
放在哪里

需要任何帮助。提前谢谢

注意:我正在使用
AJAX源代码
+
服务器端处理

来确定消息的位置 您似乎正在使用Spring
ResourceBundleMessageSource
global
作为基本名称。因此,将标题列的所有翻译放在
global.*.properties
文件中是有意义的

关于
?键
消息 它原来是v0.10.0中引入的一个bug

在等待下一个版本发布时,有一个变通方法,但只能使用DOM源代码。 下面是步骤

1) 您将使用
标记,而不是使用
titleKey
列属性。理论上,它们做的事情完全相同:在配置的资源包中查找资源

首先在JSP中声明Spring标记库:

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
并将其添加到

<datatables:column title="${titleId}" property="userId" />

还有一个修复程序可用。请升级到
0.10.1-SNAPSHOT
版本


(StackOverflow要求的免责声明:我是Dandelion的作者)

但在我的控制器的标准中,这将返回0而不是userId。。。计算的查询将从com.models.UserLogin u ORDER BY u.0 ASC变为
,而不是从com.models.UserLogin u ORDER BY u.userId ASC变为
。。此抛出错误…这不适用于服务器端。。。对于任何项目,服务器端都必须实现。。。但是没有i18n支持在起作用。。!!!!请提供一些解决方案。。。。事实上,我忘了提到这个解决方案只适用于DOM源代码。我会在回答中提到这一点。请编辑您的答案,并说明您正在使用AJAX源代码+服务器端处理。这一点很重要。顺便说一句,您可以尝试一下0.10.1-SNAPSHOT版本。阅读了解如何使用快照版本。我找到了另一个解决方法。。。请在你的回答中确定这个尺寸。。。我做了
,并将其添加到
。。。成功了!!!!请在您的答案中标注此尺寸,以便我可以批准您的答案为正确答案…:)
<spring:message code="table.header.id" var="titleId" /> 
<datatables:column title="${titleId}" property="userId" />