在使用国际化资源包的时候,我们可以使用多个资源包,但是各个包我们需要取一个别名来表示在struts-config.xmml文件中message-resources中配置属性:key. 那么我们可以在jsp页面中使用budle属性来指定这个key值所对应的资源文件.去查找我们所需要的值.
在使用struts的标签的时候,属性不能使用国际化资源.比如html:submit标签中的value属性,不能直接使用<bean:message />标签放在value值中.可以将bean标签嵌套在html:submit中,这样就可以利用bean标签使用国际化资源了.
在配置资源文件的时候,我们的资源文件名称,不能写成 - 而是 _ (一定要使用下划线进行链接.)
对于国际化资源的使用:
ActionErrors ae = new ActionErrors();
if(this.user2.getName()==null || ("").equals(this.user2.getName().trim())){
ae.add("nameError", new ActionMessage("errors.username"));
}
在添加错误信息提示的时候,我们可以
new ActionMessage("用户名不能为空", false);
这个表示使用代码中的字符串提示.
后面的boolean参数是为了表示是不是把这个字符当作是资源文件中的key值查找信息还是仅仅当作是普通字符串.
/**
* <p>Construct an action message with the specified replacement values.</p>
*
* @param key Message key for this message
* @param resource Indicates whether the key is a bundle key or literal value
*/
public ActionMessage(String key, boolean resource) {
this.key = key;
this.resource = resource;
}
在参数的国际化中,我们使用Action类中的getResources().getMessage()就能得到我们想要的资源文件中的消息
在formBeam中我们将参数进行国际化的时候,我们可以参考action类中的方法利用request对象来得到资源文件中的消息.(因为在action中有直接封装好的方法,我们可以直接调用,在formBean里就没有那些方法,所以我们可以参考action中的代码来写formBean中的参数国际化)