Struts1源码查看之国际化资源

来源:互联网 发布:知乎笑话集锦 编辑:程序博客网 时间:2024/06/11 03:06

在使用国际化资源包的时候,我们可以使用多个资源包,但是各个包我们需要取一个别名来表示在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中的参数国际化)
原创粉丝点击