除经特别注明外,本站文章版权归JScud Develop团队或其原作者所有. 
转载请注明作者和来源.  scud(飞云小侠)    欢迎访问 JScud Develop 
这个特性应该说这是一个副产品.是我最近突然想到这个想法,然后试用webwork 2.2,发现可以做到,而webwork 2.1.7是做不到的. 
名词定义: 
简单页面:不通过action访问,直接访问文件的url.例如直接访问的jsp,或者直接访问的ftl. 
需求想法: 
在一个网站中,有很多页面,其中很多页面仅仅是简单的页面,没有程序处理等.不过为了国际化,这些页面就需要进行i18n的工作. 
1.按照正常的想法,应该是每个页面都要写一个action,然后结果定义为这个页面,通过访问action来对页面进行国际化.或者是写一个action,根据参数的不同,转向目标页面. 
或者要定义很多action或者很多参数 或者用一个程序带不同的参数来访问. 总之是麻烦,不直观. 
2.实现自己的一个tag来装载国际化信息.这样很简单.不过只能用在jsp里. 如果想使用freemarker的话,通过一些简单处理,也可以使用这个功能. 
这个思路很简单,可以不依赖任何其他组件. 
3.WebWork 2.1.7 
如果是在Jsp中,可以通过 
| 
 
          <ww:i18n name="message">            <ww:text name="name"/>          </ww:i18n>         
  | 
来实现简单页面的国际化. 无法在freemarker的简单页面中直接使用. (可以在action的结果页面中使用) 
4.WebWork 2.2 Beta (在最后发布的版本中,可能会有变化!!!) 
在简单页面Jsp中,可以直接使用ww:text,例如 
(注意:在webwork.properties中需要包含资源文件 webwork.custom.i18n.resources=message ,如果有多个,就用逗号分割) 
在FreeMarker的简单文件中,也可以直接使用ww:text. 
当前是在web.xml里面配置了FreeMarker的处理引擎.如: 
| 
         <servlet>            <servlet-name>freemarker</servlet-name>            <servlet-class>com.opensymphony.webwork.views.  freemarker.FreemarkerServlet</servlet-class>            <load-on-startup>10</load-on-startup>          </servlet>                   <servlet-mapping>            <servlet-name>freemarker</servlet-name>            <url-pattern>*.ftl</url-pattern>          </servlet-mapping>           | 
警告:如果你不使用FreeMarker的简单页面,不需要配置这个Servlet,即使使用freemarker的ftl页面来做action的结果页面,也不需要配置这个Servlet,使用webwork的freemarker结果即可,具体请浏览webwork的Result Type的文档.