kapok

垃圾桶,嘿嘿,我藏的这么深你们还能找到啊,真牛!

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  455 随笔 :: 0 文章 :: 76 评论 :: 0 Trackbacks

今天开始开工.
在webwork.property中加入
webwork.configuration.xml.reload=true之后,原来正常的action突然间不能正确执行, 后来发现原来是定义该action的xml还处于打开状态的缘故(也可能是其他原因?), 可能重建config对象的时候必须获得对该文件的独享访问??

PS:刚刚做了一次重新测试,以上原因排除,为什么尚未找到,反正现在好了.

2.

<action name="hello" class="helloworld.HelloWorldAction">
   <result name="success" type="dispatcher">
    <param name="location">/greetings.jsp</param>
   </result>
  </action>

这段代码有另外一种调用方式:
http://localhost:8080/webwork_test/hello/hello!noHello.action

这样就是调用hello这个action指定类的noHello方法了.
如果要带参数的话,还没找到如何配置.呵呵.

3.
明确指定调用那个方法的配置文件写法:

<!-- action指定了调用action哪个方法-->
  <action name="nohello" class="helloworld.HelloWorldAction" method="noHello">
   <result name="success" type="dispatcher">
    <param name="location">/greetings.jsp</param>
   </result>
  </action>


4.
指定全局的资源文件方法:
http://wiki.opensymphony.com/display/WW/webwork.properties
### Load custom default resource bundles
#webwork.custom.i18n.resources=testmessages,testmessages2

如果ApplicationResources的资源文件放在src/resources文件夹里面,在页面上面写
<ww:i18n name="'resources.ApplicationResources'">
 <ww:text name="'delete'">
 </ww:text>
</ww:i18n>
可以正确的找到中文字符集. 如果写成<ww:i18n name="ApplicationResources'">,则会提示:  Could not find the bundle 'ApplicationResources'.以上操作并没有设置webwork.custom.i18n.resources属性.如果指定webwork.custom.i18n.resources=resources.ApplicationResources而不指定i18n标签的name是不允许的.i18n标签的name属性是必须的选项,并且要写全路径.

但是如果仅仅写<ww:text name="'add'"/>页面上仅仅是显示add, 不会显示对应的中文. 原因正在找.
(这个问题在tomcat重新启动之后消失,在资源文件中配置了webwork.custom.i18n.resources=resources.ApplicationResources属性之后,页面上的<ww:text name="'add'"/>标签生效了.注意配置属性的时候前后左右不要写多余的空格).

另外一个国际化的参考链接:
http://wiki.opensymphony.com/display/WW/Internationalization
基本上涉及到资源文件的修改都需要重新启动服务器.
如果不想重启的话可以参考这个链接:
http://forum.javaeye.com/viewtopic.php?t=6417&highlight=locale

5.
上面的试验表示多语言的第一步是成功的,接下来的问题是中文显示成?.以及手工控制多语言的问题.

webwork.i18n.encoding=UTF-8
测试页面中的文字如下:

中国
<p></p>
<ww:text name="'add'"/>

在这个页面里面没有指定页面的编码方式,只是页面本身的编码方式在IDE中指定,当在ie中选择UTF-8编码时,中文"中国"显示正常.
(原来把页面设置成IDE里面的UFT-8,结果如果用myeclipse的jsp编辑器打开,默认时ISO编码).

<%@ page contentType='text/html;charset=UTF-8'%>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
页面里面添加以上两句,把jsp的文件属性设置成UTF-8,再用myeclipse打开该jsp文件输入中文"中国",这个时候可以正确保存中文,浏览器可以正确的选择UFT-8编码.另外从ApplicationResources文件中选择出来的中文显示也正常了(该资源文件为UFT-8编码,利用Java ResourceBuddle Editor插件编辑).

中文问题解决,没有使用filter. 注意: 我的webwork版本为2.1.7.有些老版本的估计还是得用filter来处理.以后有空可以试一下.

6.
继续上面的试验, 所有条件不变,在helloworld.HelloWorldAction所在包中新建与该action名字想同的资源文件,本例中叫做HelloWorldAction_en.properties和HelloWorld_zh_CN.properties,然后在里面加两个跟全局resource相同key的资源文件,页面上会优先从这里来取国际化文字,也就是说即使指定了全局resource文件,如果在action执行的包内存在同名的key也会覆盖同名全局资源文件中的key定义.
同样,如果虽然action包中存在资源文件,但是没有定义请求的key的国际化文字,则会到全局资源文件里面进行查找.

结论: webwork可以支持很好的全局资源文件, 并且每个action可以根据需要覆盖某些key的定义. 在资源文件的搜索路径中是action的资源文件优先,其次是全局资源文件

原文
http://wiki.opensymphony.com/display/WW/Internationalization
WebWork supports internationalization (in short, i18n) in two different places: the UI tags and the action/field error messages.

UI Tags
Validation Examples

Resource bundles are searched in the following order:

1.) ActionClass.properties
2.)BaseClass.properties (all the way to Object.properties)
3.) Interface.properties (every interface and sub-interface)
4.) package.properties (every of every base class, all the way to java/lang/package.properties)

7.
http://forum.javaeye.com/viewtopic.php?t=11073&start=0
http://www.opensymphony.com/webwork/wikidocs/Transparent%20web-app%20I18N.html

http://localhost:8080/webwork_test/hello/hello.action?set_locale=zh_CN
http://localhost:8080/webwork_test/hello/hello.action?set_locale=en_US

测试通过,自定义语种问题解决.


相关链接:
http://forum.javaeye.com/viewtopic.php?t=11073&start=0



8.
今天发现5.8.4版本的myeclipse的tag属性面板挺好用的.good.


9.
有关webwork的javascript验证能力参看以下帖子:
http://www.hibernate.org.cn/viewtopic.php?t=9126&postdays=0&postorder=asc&start=0

http://forum.javaeye.com/allbloglist.php?page=15

http://scud.blogdriver.com/scud/index.html

posted on 2005-03-27 13:18 笨笨 阅读(618) 评论(0)  编辑  收藏 所属分类: HibernateAndSpringALLAppFuse

只有注册用户登录后才能发表评论。


网站导航: