Struts2(四) 拦截器

一、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

时间: 2024-10-03 05:41:57

Struts2(四) 拦截器的相关文章

Struts2 (四) — 拦截器

一.拦截器 1.概述 1.1什么是拦截器 ? 在struts2中,拦截器(Interceptor)是用来动态拦截Action执行的对象. ? 拦截器有点类似以前Servlet阶段的Filter(过滤器) , 能够在请求到达Action之前进行拦截操作, 可以在里面进行判断校验. 典型的例子: 登录拦截. 注:过滤器可以过滤servlet,jsp,html , 但拦截器只能拦截Action 1.2 struts2执行流程 ? 客户端请求Action,执行前端控制器,在前端控制器内部创建了Actio

Struts2知识点小结(四)--拦截器与注解开发

一.Struts2的拦截器(interceptor) 作用:当请求进入struts2框架后(进入之前可以用filter进行拦截),想对请求进行拦截操作(功能增强.权限控制),需要拦截器组件        1.struts2内置拦截器            1.1 struts-default.xml中配置好的拦截器            struts2框架已经定义好并使用的拦截器            发送请求 -----> interceptor1---->interceptor2 ----

调查管理系统 -(6)自定义Struts2的拦截器&amp;自定义UserAware接口&amp;Action中模型赋值问题&amp;Hibernate懒加载问题

1.对于一些功能,如我的调查或新建调查等,只有用户登录后才能进行操作,因此必须对用户是否登录进行判断.当用户登录后才能使用相应的功能,如果没有登录则需为用户导航到登录页面让其进行登录.这个功能可以通过自定义Struts2的拦截器来完成. 2.当用户登录之后,由于是将用户的信息保存在session中的.这样当一些Action中需要用到当前登录的用户的信息时需要手动的从session中获取,不太方便,因此我们声明了一个UserAware接口(即用户关注,类似于Struts2中的SessionAwar

struts2 在拦截器进行注入(根据Action是否实现自定义接口)

例如:常常在Action中都需要获取当前登录的User,就需要获取Session,然后从Session获取当前登录的User,因为这些步骤都是重复操作,可以想办法在拦截器中进行实现,可以自定义一个接口,只要你的Action实现了这个接口,就在自定义拦截器中进行注入.即从拦截器中获取Session,然后设置进行注入. 简单的例子: 一个自定义接口,只要Action实现这个接口,就在拦截器中进行注入 package com.atguigu.surveypark.struts2; import com

【struts2】拦截器基础

1)拦截器是什么? 拦截器(Interceptor)是Struts2最强大的特性之一,它是一种可以让你在Action执行之前和Result执行之后进行一些功能处理的机制.来回顾一下官方给出的Struts2系统架构图中关于拦截器的部分,如下图所示: 这个图清晰的描述出了拦截器的运行地位,就是用来负责在Action执行之前和Result执行之后处理一些功能的类.也就是说,上图示意了有3个拦截器的类,分别是Interceptor1.Interceptor2和Interceptor3,它们分别执行不同的

Struts2自定义拦截器Interceptor以及拦截器登录实例

1.在Struts2自定义拦截器有三种方式: -->实现Interceptor接口 public class QLInterceptorAction implements Interceptor{ private static final long serialVersionUID = 1L; public void destroy() { } public void init() {} public String intercept(ActionInvocation arg0) throws

Struts2 自定义拦截器时Action无法接收到参数

问题:自定义拦截器,没有添加defaultStack导致Action无法接受到参数 解决办法: 方法一,添加defaultStack,然后在Action中引用 自定义的stack,其实defaultStack中也有细分如basicStack等 <interceptors> <interceptor name="checkUser" class="com.common.interceptor.UserInfoInterceptor"></

Spring的AOP,Struts2的拦截器(Interceptor),以及springMVC的(interceptor)

参考外链:http://www.ibm.com/developerworks/cn/java/j-lo-springaopfilter/ 1.首先,spring的AOP作用范围很广,可以使用Aspectj的execution表达式自定以切面的位置. 比如下面的配置service方法执行日志: 1 <!-- 系统日志 --> 2 <bean id="logUtils" class="com.tabchanj.crm.utils.SystemLogUtils&q

【struts2】拦截器的工作模拟实现

Main.java /** * 书本:[struts2] * 功能:模拟拦截器的工作,实际就是递归的思想 * 文件:Main.java * 时间:2014年11月9日20:04:55 * 作者:cutter_point */ public class Main { public static void main(String [] args) { new ActionInvocation().invoke(); } } ActionInvocation.java /** * 书本:[struts