struts2取自定义资源文件?

finalsyo 2010-01-28 05:06:45
自定义个资源文件,例如
key1 = msg1
key2 = msg2
key3 = msg3
key4 = msg4

现在只知道这个文件的名字和里面是以键-值方式写的,不知道具体的key值,想在action中把他们全部取出来保存到一个map

中应该怎么做啊?
...全文
368 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
finalsyo 2010-01-29
  • 打赏
  • 举报
回复
是啊,书里好像有过类似的介绍,才匆匆看了一边就立刻要应用,多些提醒,我再去看看这段[Quote=引用 8 楼 warison2008 的回复:]
(2) 在普通的JAVA类和Action中读取资源文件:
        <1>让你的JAVA类或者是ACTION继承ActionSupport,通过里面的getText("建名")来取值,可能有一些朋友这么做了,可是偏骗就是从全局资源文件中取不到值,一开始我也是这样,后来找到了解决的办法,我想可能是在2.0中普通的java类和ACTION根本就没有办法读取到全局的资源文件中的值.后来我看到了下面的那些话后决定使用局部的资源文件.
       
假设我们在某个ChildAction中调用了getText("user.title"),Struts 2.0的将会执行以下的操作:
查找ChildAction_xx_XX.properties文件或ChildAction.properties;
查找ChildAction实现的接口,查找与接口同名的资源文件MyInterface.properties;
查找ChildAction的父类ParentAction的properties文件,文件名为ParentAction.properties;
判断当前ChildAction是否实现接口ModelDriven。如果是,调用getModel()获得对象,查找与其同名的资源文件;
查找当前包下的package.properties文件;
查找当前包的父包,直到最顶层包;
在值栈(Value Stack)中,查找名为user的属性,转到user类型同名的资源文件,查找键为title的资源;
查找在struts.properties配置的默认的资源文件,参考例1;
输出user.title。
所以后来我看到这些之后明白,当在一个JAVA类或者是ACTION里面使用getText的时候它会首先去找到与ACTION或者是与JAVA类同名的资源文件,所以我在同一包下面建立了相同名称的资源文件.后来经过getText的测试通过了.截止到现在,struts2.0的资源文件的读取,终于成功了.
[/Quote]
道光2008 2010-01-29
  • 打赏
  • 举报
回复
(2) 在普通的JAVA类和Action中读取资源文件:
<1>让你的JAVA类或者是ACTION继承ActionSupport,通过里面的getText("建名")来取值,可能有一些朋友这么做了,可是偏骗就是从全局资源文件中取不到值,一开始我也是这样,后来找到了解决的办法,我想可能是在2.0中普通的java类和ACTION根本就没有办法读取到全局的资源文件中的值.后来我看到了下面的那些话后决定使用局部的资源文件.

假设我们在某个ChildAction中调用了getText("user.title"),Struts 2.0的将会执行以下的操作:
查找ChildAction_xx_XX.properties文件或ChildAction.properties;
查找ChildAction实现的接口,查找与接口同名的资源文件MyInterface.properties;
查找ChildAction的父类ParentAction的properties文件,文件名为ParentAction.properties;
判断当前ChildAction是否实现接口ModelDriven。如果是,调用getModel()获得对象,查找与其同名的资源文件;
查找当前包下的package.properties文件;
查找当前包的父包,直到最顶层包;
在值栈(Value Stack)中,查找名为user的属性,转到user类型同名的资源文件,查找键为title的资源;
查找在struts.properties配置的默认的资源文件,参考例1;
输出user.title。
所以后来我看到这些之后明白,当在一个JAVA类或者是ACTION里面使用getText的时候它会首先去找到与ACTION或者是与JAVA类同名的资源文件,所以我在同一包下面建立了相同名称的资源文件.后来经过getText的测试通过了.截止到现在,struts2.0的资源文件的读取,终于成功了.
Z_FEI 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 redlotus_lyn 的回复:]
1.在配置文件中定义资源文件:

<constant name="struts.custom.i18n.resources" value="temp"> </constant>

2.Action中取得内容

String key = getText("key1");

如果以某种规则写,自己写循环。

注:action中要用getText方法,action必须继承ActionSupport。
[/Quote]
学习下!
xinlan1022 2010-01-28
  • 打赏
  • 举报
回复
通过IO流读取资源文件
redlotus_lyn 2010-01-28
  • 打赏
  • 举报
回复
资源文件中key是不是有规律的存储啊。

你想全取,就用循环,取不到的时候就结束。

取不到是""还是null,我忘记了,应该是""。
finalsyo 2010-01-28
  • 打赏
  • 举报
回复

循环的条件是什么? 怎么能知道资源文件是否取完了???
[Quote=引用 3 楼 redlotus_lyn 的回复:]
1.在配置文件中定义资源文件:

<constant name="struts.custom.i18n.resources" value="temp"> </constant>

2.Action中取得内容

String key = getText("key1");

如果以某种规则写,自己写循环。

注:action中要用getText方法,action必须继承ActionSupport。
[/Quote]
redlotus_lyn 2010-01-28
  • 打赏
  • 举报
回复
1.在配置文件中定义资源文件:

<constant name="struts.custom.i18n.resources" value="temp"></constant>

2.Action中取得内容

String key = getText("key1");

如果以某种规则写,自己写循环。

注:action中要用getText方法,action必须继承ActionSupport。
redlotus_lyn 2010-01-28
  • 打赏
  • 举报
回复
不好意思发错了。哈。。。
redlotus_lyn 2010-01-28
  • 打赏
  • 举报
回复
<s:url id="ctCommit" value="/images/bn/commit.gif"></s:url>
<s:submit type="image" src="%{ctCommit}"></s:submit>

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧