Ajax特性很简单,修改一下xhtml文件的commandButton代码如下:
<h:commandButton id="clickButton" value="Click Me!" actionListener="#{inputBean.print}">
<f:ajax execute="in" render="out" />
</h:commandbutton>
通过Ajax发送给Server的数据包含在id为"in"的inputText tag中,这里用execute标志要发送"in"的数据。render表示Ajax调用成功后,要重新渲染id为out的outputText tag。
我希望显示的信息能够支持两种语言:中文和英文。现在在src/main/java/com/freebird目录下添加language目录,然后添加两个文件messages_en.properties和messages_zh_CN.properties.然后在faces-config.xml文件中配置如下信息:
<application>
<locale-config>
<default-locale>zh_CN</default-locale>
</locale-config>
<resource-bundle>
<base-name>com.freebird.language.messages</base-name>
<var>msg</var>
</resource-bundle>
</application>
为了将properties文件打包到jar包的classes目录下,需要修改pom.xml文件,添加build如下:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include> **/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include> **/*.xml</include>
<include> **/*.xhtml</include>
</includes>
</resource>
</resources>
</build>
好了现在修改一下xhtml文件的commandButton的value属性如下:
<h:commandButton id="clickButton" value="#{msg.buttonTitle}" actionListener="#{inputBean.print}">
<f:ajax execute="in" render="out" />
</h:commandButton>
JSF runtime会根据faces-config.xml文件中的配置查找classes/com/freebird/language目录下的messages_en或者messages_zh_CN文件,具体使用哪一个取决于使用jsfex的web应用程序的Local设置。如何在Web应用程序中实现国际化,修改Local请参考下面的文章:http://www.mkyong.com/jsf2/jsf-2-internationalization-example/
先在messages_en.properties文件中添加一行:
buttonTitle=Click Me!
然后应该在message_zh_CN.properties文件中添加相应的中文信息.注意,由于需要转码,不能直接写入中文,而是可以在临时文件中写入中文,然后通过一个工具转换。比如通常我会在messages_zh_CN文件中写入:buttonTitle=点击我.然后运行下面的命令:
native2ascii -encoding utf8 messages_zh_CN messages_zh_CN.properties
为了方便起见,我在register.sh脚本中添加对应的命令,文件内容如下:
cd src/main/java/com/freebird/language/
native2ascii -encoding utf8 messages_zh_CN messages_zh_CN.properties
cd -
mvn clean install
mvn install:install-file -Dfile=target/jsfex-1.0.jar -DgroupId=com.freebird -DartifactId=jsfex -Dversion=1.0 -Dpackaging=jar
好了,部署成功。
未完,待续。下一节,将尝试着自定义JSF标准验证错误的信息。