【发布时间】:2012-06-16 09:21:10
【问题描述】:
我正在为列中的值显示一个(特定于语言的)标签。该列是可排序的,并且 JSF 标签与数据库值不同。我正在使用带有分页功能的 primefaces 数据表。
如何按标签而不是数据库值排序?是否有任何可能的翻译,以便我的 JPA 标准知道不同的值?
在内存中排序不是一个选项,因为数据集可能很大,我只想显示一个子集(分页大小例如每页 10 个项目)
【问题讨论】:
-
您不能使用
<p:column的sortBy="#{myRow.mylabel}"属性吗?只需将您的标签值填充到代表您的行的对象的字段中... -
感谢您的建议,我已经尝试过了。但是标签没有存储在数据库中,而这就是排序发生的地方(嗯,在生成的语句中)。所以重点是:数据库不知道用户看到的标签。但是用户想知道错误的排序行为
-
所以把这个标签放到你的对象中,代表表中的行...,不是吗?
-
这将不符合 JSF 的 I18N 国际化机制,并且属性值的标签不应在对象中硬编码,因为标签仅用于 GUI。如果您使用相同的会发生什么另一个 GUI 中的数据模型?
-
您应该从 JSF 使用的属性文件转换服务器端的标签...使用 ResourceBundle.getBundle("some.package.resources.YourTexts",yourLocale)...
标签: jsf-2 primefaces jpa-2.0