struts入门之--本地化输出(localizing output)有问题篇(已解决)!

本文通过一个简单的登录示例介绍了如何在Struts框架中实现本地化输出,包括配置properties文件、设置struts.xml及web.xml等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上个星期五寝室闹电荒,还有几度电了。一个周末都不敢开电脑。今天星期一,冲了电,舒服,有电了。O(∩_∩)O哈哈~。

 

 

晚上吃了饭,回来打开struts的文档,看到了  本地化输出。做了点小小的实验,记下来。

 

接下来的图片我都自己加上了水印。csdn的博客还没有自动加水印的功能。

 

我今天做的实验是……,直接上数据了,看了就知道了。申明:基本的struts那些概念我懂了。

 

总共有两个页面(一个是登陆页面,一个是登陆成功页面),一个action,一个struts.xml,properties文件,然后还有些文件,做到哪里的时候再说。

既然是本地化输出,肯定先说最核心的文件,本地方属性配置文件,properties文件。

 

LoginAction.properties

 

 

看到了撒,这个就是我写的一个简单的配置文件,其中:

定义了三个测试用消息,

定义了一个登陆成功消息,

定义了两个字段名,

定义了一个要求字段为空错误消息。

 ${getText(fieldName)}这个看清楚不要弄错了,刚开始我就弄错了。

 

这个文件该放在哪里了?

我开始也这样想了下。文档肯定有说的。

here:

上面的一个1,2,3,4,5,6,7.是struts搜寻properties文件的顺序。

瞧:1.是一个以action 的名作为properties文件的名称。

然后的一些大家看看。

注:package.properties文件用的貌似还是多,然后第7个  global文件——其实就是struts.properties文件。要是前面六个都没有搜索到。就用全局的properties文件。

 

 

我取的名字是根据action来的。所以我把这个文件放在action的class文件的同一目录下面。后面还是什么baseclass,interface 那些那些,你就放在这些java的class文件的目录下嘛(我是这样依葫芦画瓢的)。

 

 

 

 

 

然后是jsp页面:

 

login.jsp:

 

大家可能会看到里面取得三个测试消息的方法不一样,确实不一样。这个是struts提供的三种方式。

 

test1,使用的是text 标签。

test2,使用的是property  配合getText。

test3,使用的是I18N标签。它使用的格式是:

<s:i18n name="some.package_name" >

         <s:text name="some.key" />

</s:i18n>

 

然后后面textfield里面的一个是使用的getText方法,还有一个是使用的key属性。

 

 

接下来:

done.jsp

 

 

不再赘述。

 

 

struts.xml:

 

web.xml:

 

 

 

LoginAction-validation.xml:

 

 

LoginAction.java:

 

我想这些我不用多讲了撒,如果不懂的话,看看我以前的学习笔记嘛,如:namespace,validator等等。。。

 

 

 

运行试试:

 

呵呵,竟然有错误。官方文档时这种做的,我也是这样做的,怎么会有错。

 

 

不管,什么都不填,提交下:

 

 

 

更奇怪的事情,难道这的是长相问题:

看哪个sex竟然是大写的。

查查原来的地方,看笔误没有?

jsp里面:

          <s:textfield label="%{getText('user.username')}" name="name"/>
          <s:textfield key="user.sex" name="sex"/>

注:那个getText方法前面的  百分号  我是安装文档上面说的来的,我换成$符号试过,编译报错:label里面不能有表达式。

 

 

properties里面:

required=sorry , ${getText(fieldName)}  is required.

没有错的嘛,都是取得fieldName。怎么这样对我。

 

算了,我填个数据提交下试试:

 

 

我提交:

 

 

 

对的了。

 

 

怎么回事?


为什么刚刚开始的时候,我的那个login页面上没有字,白的?


为什么我提交以后就用了?


为什么我那个SEX是大写的?

 

我是按照文档来的啊?

为什么?为什么?为什么?为什么?为什么?为什么?

 

算咯,明天问老师。

 

 

先把这几个问题记下来。

 

 

待续。。。。。。。。。。

 

 

 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

 

上面那些问题,我貌似有点明白了,但是一直都没有来改,今天一下想去了,来把写完。

 

为什么刚刚开始的时候,是什么都没有,而点击了后就有了。

 

因为执行了action。框架就把所有要用的信息读出来了。

 

因为我这个是开始页面,就是我们平时的index 页面,第一次请求时并没有执行action。而本地化是针对于一个action的(这个例子我是这

 

样做的)。对于这种初始页面,最好是放在struts.properties文件里面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值