A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

struts2中有哪些常用结果类型?
(1) dispatcher :Action 转发给 JSP
(2) chain :Action转发到另一个Action (同一次请求)
(3)redirect : Action重定向到 JSP
(4)redirectAction :Action重定向到另一个Action
struts2中全局国际化的配置方式?
创建一系列的资源文件 ,命名规范 :基本名称_小写语言_大写的国家.properties
                messages_zh_CN.properties
                messages_en_US.properties
配置全局国际化
                使用struts.xml里面常量进行配置
                        常量名称:struts.custom.i18n.resources
                        常量的值:资源文件的基本名称
                        如果资源文件在src下面,直接写基本名称
                        如果资源文件在包下面,添加包路径  比如  cn/itcast/messages
Struts2 中的默认包 struts-default 有什么作用?
struts-default 包是 struts2 内置的,它定义了 struts2 内部的众多拦截器和 Result 类型,而 Struts2 很多核心的功能都是通过这些内置的拦截器实现,如:从请求中把请求参数封装到 action、文件上传和数据验证等等都是通过拦截器实现的。当包继承了 struts-default 包才能使用 struts2 为我们提供的这些功能
说出 struts2 中至少 5 个的默认拦截器
exception;fileUpload;i18n;modelDriven;params;prepare;token;
过滤器和拦截器的区别?
过滤器:在目标资源之前进行的操作,过滤所有的内容,比如action、servlet、jsp、html
拦截器:在目标资源之前进行的操作,不能拦截所有的内容,拦截action,不能拦截jsp,html
1、拦截器是基于java的反射机制的,而过滤器是基于函数回调 。
2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 。
3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用 。
4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能 。
5、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次
6.拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
addFieldError、addActionError 有何区别?
addActionError (String anErrorMessage)添加一个Action级别的错误消息到Action,错误消息被存放在List列表中。显示消息的标签是<s:actionerror />
addFieldError (String fieldName, String errorMessage)给一个字段 添加错误消息,错误消息被存放在一个Map<key, value>中(其中key存放的是fieldName,value存放的是errorMessage)。
显示消息的标签是(如放在jsp页面中):<s:fielderror />
简述struts2中自定义拦截器实现步骤?(面试)
1.首先要实现Interceptor(拦截器)接口或者继承AbstractInterceptor 2.在配置文件中定义自己的拦截器。3.最后还要把系统提供的默认拦截器加上,否则系统默认拦截器不起作用
简述struts2 的拦截器执行原理?
1.struts2中的拦截器的实现原理是AOP思想.
        当Action请求到来的时候,会由系统的代理生成一个Action的代理对象,
        由这个代理对象调用Action的execute()或指定的方法前,
        在struts.xml中查找与该Action对应的拦截器。
        如果有对应的拦截器,就在Action的方法执行前(后)调用这些拦截器;
        如果拦截器堆栈中还有其他的拦截器,那么invocation.invoke()将调用堆栈中下一个拦截器的执行。 如果拦截器堆栈中只有Action了,那么invocation.invoke()将调用Action执行。
2个非常重要的推论:
                1. 如果在拦截器中,我们不使用invocation.invoke()来完成堆栈中下一个元素的调用,
                而是直接返回一个字符串作为执行结果,那么整个执行将被中止。
                2. 我们可以以invocation.invoke()为界,将拦截器中的代码分成2个部分,
                在invocation.invoke()之前的代码,将会在Action之前被依次执行,
                而在invocation.invoke()之后的代码,将会在Action之后被逆序执行。
                由此,我们就可以通过invocation.invoke()作为Action代码真正的拦截点,从而实现AOP
使用struts2如何实现多文件上传?
1.上传表单页面,多个文件上传项name属性值必须要一样
2.创建action,在action实现多文件的上传,在action中使用数组形式得到多个文件的信息
3.遍历数组,得到每一个文件的信息,一个一个上传到服务器中

   


1 个回复

正序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马