message的国际化

-----------------------------------------------------------------------------------------
实现message的国际化过程:
1.编写校验器LoginAction-validation.xml文件,每个action最好对应一个校验器,在校验器的message标签中定义好<message key="login.username.maxLength">(其中的key不是jsp页面的<input name="">的name,但可以写成一样)。

2.在struts.xml中设置国际化的信息(主要是为了设定国际化的消息文件名,我认为是为了让编译器知道该从哪个文件检索信息),其标签为(常量标签):<constant name="struts.custom.i18n.resources" value="msg"></constant>,其中的value就是消息的文件名,或者说是文件名的前缀,因为信息文件不止一个,得根据你要设定几种语言而定。

3.在src文件的目录下创建msg.properties文件,把上面的message中的key值配置好:
login.username.maxLength=the max length must less than 18
这个是默认的消息,等一下再说这个
然后再创建两个文件,msg_zh_CN.properties文件和msg_en_US.properties,_zh_CN这个是中国大陆的表示法,_en_US是美国英语的表示法,不懂的在浏览器中找一下浏览器的语言设置,上面有各种语言的列表,
在msg_zh_CN.properties中配置中文信息:
login.username.maxLength=\u6700\u5927\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc718
等号后面的值是汉语"最大长度不能超过18"从native2ascii中转换而来的ascii代码,因为properties不能保存汉字,只能转化为ascii代码保存
在msg_en_US.properties中配置英语信息:
login.username.maxLength=the max length must less than 18

4.在jsp页面上把你设定好的messag消息放置到一个需要输出的地方:
用户名:<input type="text" name="userInfo.username" value=""><s:fielderror fieldName='userInfo.username' />
其中fieldName是你在LoginAction-validation.xml文件中的<field name="userInfo.username">的name属性的值,但貌似只能是对应的域的值,即与域值是一致的。

5.jsp中的<s:fielderror></s:fielderror>的class是errorMessage,是块级元素,list-inline默认输出黑点,显示时肯定不能在对应的地方输出,所以可以通过修改其属性就可以了:
<style type="text/css">
    .errorMessage {
        color:red;
        margin:0px;
        padding:0px;
        display:inline;
        list-style:none;
    }
    .errorMessage li {
        display:inline;
    }
</style>


(如果没记错属性的话就是上面的代码了,运行时只显示了两个属性,不知道其它的地方有没有错)

注:第3点的msg.properties是在你的浏览器配置的语言中没有找到服务器所配置的所有语言时,就寻找该properties,这是默认的信息配置

总结在试验时忘了把<constant>加在struts中,忙了大半天。。。。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值