struts2视频学习笔记 24-27(国际化)
课时24
- 配置国际化全局资源文件、输出国际化信息
1.准备资源文件,添加到src目录下,资源文件的命名格式如下:
baseName_language_country.properties
baseName_language.properties
baseName.properties
其中baseName是资源文件的基本名,我们可以自定义,但language和country必须是java支持的语言和国家。如:
中国大陆: test_zh_CN.properties
内容:welcome=欢迎测试
welcome=\u6B22\u8FCE\u6D4B\u8BD5
对于中文的属性文件,我们编写好后,应该使用jdk提供的native2ascii命令把文件转换为unicode编码的文件(eclipse自动转换)。命令的使用方式如下:
native2ascii 源文件.properties 目标文件.properties
美国: test_en_US.properties
内容:welcome=welcome to test
2.
<constant name="struts.custom.i18n.resources" value="test"/>
3.在JSP页面中访问国际化信息
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %> <!-- struts2标签 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>校验</title>
</head>
<body>
<s:text name="welcome"></s:text>
</body>
在action中访问国际化信息
package tutorial; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport; public class Person extends ActionSupport{ @Override
public String execute() throws Exception {
ActionContext.getContext().put("message", getText("welcome"));
return "message";
} }
在表单标签中,通过key属性指定资源文件中的key,如:
<s:textfield name="realname" key="welcome"/>
课时25
- 输出带有占位符的国际化信息
资源文件中的内容如下:
welcome={0},欢迎测试{1}
welcome={0},welcome to test{1}
在jsp页面中输出带占位符的国际化信息
<s:text name="welcome">
<s:param>zzy</s:param>
<s:param>study</s:param>
</s:text>
在Action类中获取带占位符的国际化信息,可以使用getText(String key, String[] args)或getText(String aTextName, List args)方法。
public String execute() throws Exception {
ActionContext.getContext().put("message", this.getText("welcome",new String[]{"zzy","study"}));
return "message";
}
课时26
- 配置包范围国际化资源文件
在java的包下放置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。当查找指定key的消息时,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件(全局范围资源文件)中寻找。
课时27
- 配置Action范围国际化资源文件
在Action类所在的路径,放置ActionClassName_language_country.properties资源文件,ActionClassName为action类的简单名称。
- 当查找指定key的消息时,系统会先从ActionClassName_language_country.properties资源文件查找,如果没有找到对应的key,然后沿着当前包往上查找基本名为package 的资源文件,一直找到最顶层包。如果还没有找到对应的key,最后会从常量struts.custom.i18n.resources指定的资源文件中寻找。
- JSP中直接访问某个资源文件
struts2为我们提供了<s:i18n>标签,使用<s:i18n>标签我们可以在类路径下直接从某个资源文件中获取国际化数据,而无需任何配置:
<s:i18n name="test">
<s:text name="welcome">
<s:param>zzy</s:param>
<s:param>study</s:param>
</s:text>
</s:i18n>
test为类路径下资源文件的基本名。
如果要访问的资源文件在类路径的某个包下:
<s:i18n name="tutorial/package">
<s:text name="welcome">
<s:param>zzy</s:param>
<s:param>study</s:param>
</s:text>
</s:i18n>
struts2视频学习笔记 24-27(国际化)的更多相关文章
- 尚硅谷STRUTS2视频学习笔记
上一个月一直在学习STRUTS2,学习的是尚硅谷佟刚老师的视频,因为很喜欢佟刚老师的声音,而且他讲的很细,笔记做的也多,基本上是照着他的视频完整的敲了一遍代码,下面就把学习到的知识梳理一遍,最后把项目 ...
- struts2视频学习笔记 22-23(基于XML配置方式实现对action的所有方法及部分方法进行校验)
课时22 基于XML配置方式实现对action的所有方法进行校验 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类 ...
- struts2视频学习笔记 29-30(Struts 2常用标签,防止表单重复提交)
课时28 Struts 2常用标签解说 property标签 property标签用于输出指定值: <s:set name="name" value="'kk'&q ...
- struts2视频学习笔记 28(OGNL表达式)
课时28 OGNL表达式 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts 2框架使用OGNL作为默认的表达式语 ...
- struts2视频学习笔记 19-20(手工编写代码实现所有方法和指定方法校验)
课时19 对Action中所有方法进行输入校验 1.手工编写代码实现对action中所有方法输入校验 通过重写validate() 方法实现, validate()方法会校验action中所有与exe ...
- struts2视频学习笔记 18(自定义拦截器)
课时18 自定义拦截 因为struts2中如文件上传,数据验证,封装请求参数到action等功能都是由系统默认的defaultStack中的拦截器实现的,所以我们定义的拦截器需要引用系统默认的defa ...
- struts2视频学习笔记 15-17 (访问或添加request属性,文件上传)
课时15 访问或添加request/session/application属性 1.简单说 page指当前页面.在一个jsp页面里有效 2.request 指从http请求到服务器处理结束,返回响应的 ...
- struts2视频学习笔记 11-12(动态方法调用,接收请求参数)
课时11 动态方法调用 如果Action中存在多个方法时,可以使用!+方法名调用指定方法.(不推荐使用) public String execute(){ setMsg("execute&q ...
- struts2视频学习笔记 09-10(struts2处理流程,指定多个struts配置文件)
课时9 Struts2的处理流程 StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url- ...
随机推荐
- Spring的"Hello, world",还有"拿来主义"
这里有两个类: com.practice包下的SpringTest.java和PersonService.java. Spring可以管理任意的POJO(这是啥?),并不要求Java类是一个标准的Ja ...
- ServiceStack.OrmLite 笔记2 -增
ServiceStack.OrmLite 笔记2 这篇主要介绍 增加 db.Insert(new Employee { Id = 1, Name = "Employee 1" }) ...
- POJ3009 Curling
题目链接:http://poj.org/problem?id=3009 题意:从2出发,要到达3, 0可以通过,碰到1要停止,并且1处要变成0, 并且从起点开始沿着一个方向要一直前进,直至碰到1(或者 ...
- 查看perl及其模块
Perl本身自带了很丰富的文档,如果把它们都打印出来,恐怕要耗费大量纸墨.我们试图清点过,但数到2000页左右的时候就数不清了(不用担心,我们用虚拟打印机计算页面数量,这样不会对树木造成威胁,挺环保的 ...
- php 怎么设置报错级别 和 控制报错[转]
在Windows环境下:有时在其他环境下运行正常的程序在自己的环境上会报错误 程序会 报出 Undefined index: 这样的错误例如有如下的代码: ...
- 利用EL表达式+JSTL在客户端取得数据 示例
<%@page import="cn.gbx.domain.Address"%> <%@page import="cn.gbx.domain.User& ...
- Android调用系统 Set As Intent
调用方法如下: Intent intent = new Intent(Intent.ACTION_ATTACH_DATA); intent.addCategory(Intent.CATEGORY_DE ...
- iOS - OC NSData 数据
前言 @interface NSData : NSObject <NSCopying, NSMutableCopying, NSSecureCoding> @interface NSMut ...
- Git学习(2)Git 安装
Windows 平台上安装 在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行: 安装包下载地址 ...
- (一)解决Sublime Text 2中文显示乱码问题
欲解决问题,关键在于让Sublime Text 2支持GB2312和GBK.步骤如下: 1.安装Sublime Package Control. 在Sublime Text 2上用Ctrl+-打开 ...