如何用自定义按钮替换PrimeFaces DataTable分页?

问题描述 投票:0回答:1

我想用自定义的JSF h:outputtext替换标准的DataTable分页按钮。

这是当前的impl:

enter image description here

现在我需要完全改变按钮。问题是因为语言不同,我正在使用JSF messages.properties文件。

它应该是这样的:

enter image description here

所以我首先想到我可以用JS替换它,但由于语言不同,这不能起作用。因此,当用户是中国人时,文本必须从“下一个”更改为“下一个”,这不能通过JS脚本完成,因为DOM已经加载且JS没有JSF功能。

这是DOM的下一个按钮:

<a href="#" class="ui-paginator-next ui-state-default ui-corner-all ui-state-hover" aria-label="Next Page" tabindex="0"><span class="ui-icon ui-icon-seek-next">N</span></a>

所以我需要做这样的事情:

<a href="#" class="ui-paginator-next ui-state-default ui-corner-all ui-state-hover" aria-label="Next Page" tabindex="0"><span>#{msgs.nextMessage} &rarr;</span></a>

但是怎么样?

javascript java jsf primefaces
1个回答
-1
投票

你应该有多个messages.properties文件,每个文件都适合你的不同语言吗?下面的示例显示了我如何创建一个处理英语和西班牙语的应用程序。

你将有一个message.properties:greeting = Hello!

然后,您将需要一个message_sp.properties:greeting = Hola!

您需要更新faces-config.xml,以确保您有以下内容。

 <application>
     <locale-config>
         <default-locale>en_GB</default-locale>
         <supported-locale>sp</supported-locale>
     </locale-config>

     <resource-bundle>
         <base-name>uk.police.ecis.message</base-name>
         <var>message</var>
     </resource-bundle>
 </application>

然后在你的JSF文件中,写下这样的东西:

<a href="#" class="paginatorStyle" aria-label="Next Page" tabindex="0"><span>#{message.greeting} &rarr;</span></a>

它会为你找出剩下的部分。 JSF中的国际化是您正在尝试的。希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.