一、struts2国际化
定义:同一款软件 可以为不同用户,提供不同语言界面
第一种 全局国际化信息文件 (所有Action都可以使用 ) ------- 最常用
1、properties文件可以在任何包中
2、 需要在struts.xml 中配置全局信息文件位置
<!-- messages.properties 在src根目录 --> <constant name="struts.custom.i18n.resources" value="messages"></constant> <!-- messages.properties 在 cn.itcast.resources 包 --> <constant name="struts.custom.i18n.resources" value="cn.itcast.resources.messages"></constant>
3、在Action中使用: this.getText("msg");
4、在jsp中使用 :<s:text name="msg" />
5、在配置文件中(校验xml) : <message key="agemsg"></message>
第二种 Action范围信息文件 (只能在某个Action中使用 )
第三种 package范围信息文件(package中所有Action都可以使用 )
第四种 临时信息文件(主要在jsp中 引入国际化信息 )
二、struts2拦截器----重点
拦截器的使用 ,源自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 视图
4、实例:登陆权限控制
三、struts2文件上传与下载
原文地址:https://www.cnblogs.com/shelly0307/p/10765268.html