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

2019-04-13 17:32发布

上个星期五寝室闹电荒,还有几度电了。一个周末都不敢开电脑。今天星期一,冲了电,舒服,有电了。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标签。它使用的格式是: "some.package_name" >          "some.key" />   然后后面textfield里面的一个是使用的getText方法,还有一个是使用的key属性。     接下来: done.jsp     不再赘述。     struts.xml:   web.xml:       LoginAction-validation.xml:     LoginAction.java:   我想这些我不用多讲了撒,如果不懂的话,看看我以前的学习笔记嘛,如:namespace,validator等等。。。       运行试试:   呵呵,竟然有错误。官方文档时这种做的,我也是这样做的,怎么会有错。     不管,什么都不填,提交下:       更奇怪的事情,难道这的是长相问题: 看哪个sex竟然是大写的。 查查原来的地方,看笔误没有? jsp里面:          
         
注:那个getText方法前面的  百分号  我是安装文档上面说的来的,我换成$符号试过,编译报错:label里面不能有表达式。     properties里面: required=sorry , ${getText(fieldName)}  is required. 没有错的嘛,都是取得fieldName。怎么这样对我。   算了,我填个数据提交下试试:     我提交:       对的了。     怎么回事?
为什么刚刚开始的时候,我的那个login页面上没有字,白的?
为什么我提交以后就用了?
为什么我那个SEX是大写的?   我是按照文档来的啊? 为什么?为什么?为什么?为什么?为什么?为什么?   算咯,明天问老师。     先把这几个问题记下来。     待续。。。。。。。。。。       ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////     上面那些问题,我貌似有点明白了,但是一直都没有来改,今天一下想去了,来把写完。   为什么刚刚开始的时候,是什么都没有,而点击了后就有了。   因为执行了action。框架就把所有要用的信息读出来了。   因为我这个是开始页面,就是我们平时的index 页面,第一次请求时并没有执行action。而本地化是针对于一个action的(这个例子我是这   样做的)。对于这种初始页面,最好是放在struts.properties文件里面。