国际化信息显示 ,自定义拦截器

四、 国际化信息显示
1、 国际化原理 ? 什么是国际化 ?
 同一款软件 可以为不同用户,提供不同语言界面  ---- 国际化软件
 需要一个语言资源包(很多properties文件,每个properties文件 针对一个国家或者语言 ,通过java程序根据来访者国家语言,自动读取不同properties文件 )
 
2、 资源包编写
 properties文件命名 :  基本名称_语言(小写)_国家(大写).properties
例如 :
 messages_zh_CN.properties 中国中文
 messages_en_US.properties 美国英文

3、 ResourceBundle 根据不同Locale(地域信息),读取不同国家 properties文件
ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.US);

4、 struts2 框架国际化配置
第一种 全局国际化信息文件 (所有Action都可以使用 ) ------- 最常用
 * properties文件可以在任何包中
 * 需要在struts.xml 中配置全局信息文件位置
 
struts.xml
 <constant name="struts.custom.i18n.resources" value="messages"></constant>   messages.properties 在src根目录
 <constant name="struts.custom.i18n.resources" value="cn.itcast.resources.messages"></constant>   messages.properties 在 cn.itcast.resources 包

国际化信息
 在Action中使用  : this.getText("msg");
 在jsp中使用  :<s:text name="msg" />
 在配置文件中(校验xml) : <message key="agemsg"></message>
 
第二种 Action范围信息文件 (只能在某个Action中使用 )
 数据只能在对应Action中使用,在Action类所在包 创建 Action类名.properties  --------- 无需配置

第三种 package范围信息文件 (package中所有Action都可以使用 )
 数据对包 (包括子包)中的所有Action 都有效 , 在包中创建 package.properties ----- 无需配置

第四种 临时信息文件 (主要在jsp中 引入国际化信息 )
 在jsp指定读取 哪个properties文件
 <s:i18n name="cn.itcast.struts2.demo7.package">
  <s:text name="customer"></s:text>
 </s:i18n>

*** 向信息中传递参数  {0} {1} ------------ MessageFormat 动态消息文本
 this.getText("required", new String[] { "用户名" });

===============================================================================================================================================
五、 自定义拦截器
 拦截器 的使用 ,源自Spring AOP(面向切面编程)思想
 拦截器 采用 责任链 模式
  *  在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。
     *  责任链每一个节点,都可以继续调用下一个节点,也可以阻止流程继续执行
  
在struts2 中可以定义很多个拦截器,将多个拦截器按照特定顺序 组成拦截器栈 (顺序调用 栈中的每一个拦截器 )

1、 struts2 所有拦截器 都必须实现 Interceptor 接口
2、 AbstractInterceptor 类实现了 Interceptor 接口. 并为 init, destroy 提供了一个空白的实现

所有实际开发中,自定义拦截器 只需要 继承 AbstractInterceptor类, 提供 intercept 方法实现
3、 常用struts2 拦截器
 <interceptor-ref name="modelDriven"/> 模型驱动
 <interceptor-ref name="fileUpload"/> 文件上传
 <interceptor-ref name="params"> 参数解析封装
 <interceptor-ref name="conversionError"/> 类型转换错误
 <interceptor-ref name="validation"> 请求参数校验
 <interceptor-ref name="workflow"> 拦截跳转 input 视图

国际化信息显示 ,自定义拦截器

时间: 2024-10-04 02:53:26

国际化信息显示 ,自定义拦截器的相关文章

struts2 文件的上传下载 表单的重复提交 自定义拦截器

文件上传中表单的准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置为 post 需添加 <input type=“file”> 字段. Struts 对文件上传的支持 在 Struts 应用程序里, FileUpload 拦截器和 Jakarta Commons FileUpload 组件可以完成文件的上传. 步骤:1. 在 Jsp 页面的文件上传表单里使用

[原创]java WEB学习笔记74:Struts2 学习之路--自定义拦截器,struts内建的拦截器

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

关于struts2的自定义拦截器和struts2的详细流程

1.其实我们大家平常都会用struts2用的很多,但是有的时候我们并不是真正的了解struts2的运行机制,下面给大家分享一下struts2的运行流程.MVC框架 解释如下: 1.  所有请求被Struts2核心控制器StrutsPreparaedAndExecuteFilter拦截 2.根据ActionMapper提供的信息决定如何进行下一步 3.ActionMapper主要依赖Struts2的配置文件struts.xml 4.接下来为每个Action创建Action代理类ActionProx

struts2学习笔记---自定义拦截器

什么是拦截器? struts2中拦截器分为Struts2定义好的拦截器和自定义的拦截器.其作用是在一个Action执行之前进行拦截,在Action执行之后又加入某些操作. 实现原理 当请求一个Action时,struts2会查找配置文件,并根据这个Action的配置实例化对应的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器. 拦截器的执行流程 1.对Action进行预处理.(正序执行) 2.拦截器自身决定该不该执行后续的拦截器(由invoke()方法的返回值决定).

struts2基础----&gt;自定义拦截器

这一章,我们开始struts2中拦截器的学习.内容较浅,慎看. 自定义拦截器 一.增加一个自定义的拦截器为类 package com.huhx.interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class RegisterInterceptor extends AbstractInt

springMVC --拦截器流程详细,使用和自定义拦截器

先看看拦截器都做些什么: 1.日志记录:记录请求信息的日志,以便进行信息监控.信息统计.计算PV(PageView)等. 2.权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面: 3.性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间(如果有反向代理,如apache可以自动记录): 4.通用行为:读取cookie得到用户信息并将用户对象放入请求,从而方便后续流程使用,还有如提取Loca

12.Struts2自定义拦截器

12.自定义拦截器 拦截器是Struts2的一个重要特性.因为Struts2的大多数核心功能都是通过拦截器实现的. 拦截器之所以称之为“拦截器”,是因为它可以拦截Action方法的执行, 即在Acton方法执行之前或之后执行,以加强Action方法的功能. 例如,一般情况下,用户在打开某个页面之前,需要先登录,否则是无法对资源进行访问的.这就是权限拦截器. 1.定义拦截器类 自定义的拦截器类需要实现拦截器接口com.opensymphony.xwork2.interceptor.Intercep

Struts2自定义拦截器

自定义拦截器 1). 具体步骤 I. 定义一个拦截器的类 > 可以实现 Interceptor 接口 > 继承 AbstractInterceptor 抽象类 II然后在拦截器类的interceptor()方法中定义这个拦截器的功能 III. 在 struts.xml 文件配置. 1注册拦截器 <interceptors> <interceptor name="hello" class="com.atguigu.struts2.intercept

JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现

一.自定义拦截器 1.架构 2.拦截器创建 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implements Interceptor{} //创建方式2: 继承AbstractInterceptor -> struts2的体贴 //帮我们空实现了init 和 destory方法. 我们如果不需要实现这两个方法,就可以只实现intercept方法 public class MyInterceptor2