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

时间:2018-09-05 11:54:13

标签: javascript java jsf primefaces

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

这是当前的提示

enter image description here

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

这应该是这样的:

enter image description here

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

这是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>

但是如何?

1 个答案:

答案 0 :(得分:-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中进行国际化。希望能有所帮助。