1 Struts2与Struts1的联系与区别 为什么要用Struts2
Struts2不是从Struts1升级而来,而是有WebWork改名而来,
区别:
Struts2核心控制器是过滤器,面向切面编程,Struts1核心控制器是Servlet
具体区别可以看图形,点击这里
2.Struts2的核心是什么,体现了什么思想
Struts2的核心是拦截器,基本上核心功能都是由拦截器完成,拦截器的实现体现了AOP(面向切面编程)思想
3 为何继承ActionSupport
4 Struts2 如何定位action中的方法
1 感叹号定位方法(动态方法)。
2 在xml配置文件中通过配置多个action,使用action的method指定方法。
3 使用通配符(*)匹配方法。
5 模型驱动与属性驱动是什么 模型驱动使用时注意什么问题
答:模型驱动与属性驱动都是用来封装数据的。
1.模型驱动:在实现类中实现ModelDriven<T>接口使用泛型把属性类封装起来,重写getModel()方法,
2.属性驱动:在实现类里定义属性,生成get与set方法,通过属性来拿值。
3.Struts2是怎样进行值封装的?
6 Struts2如何进行校验
编程校验
1 继承ActionSupport,重写validate方法(针对所有方法)(服务器端编程,不推荐)。
2 校验框架
每个Action类有一个校验文件,命名 Action类名-validation.xml,且与Action类同目录,这是对action里面所有的方法进行校验。
7 谈谈Struts2 的国际化
在struts2中是使用了拦截器来实现国际化。一般用全局范围
struts2的国际化分为三部分:
1.Action范围,
2.包范围,
3.全局范围,一般属性文件的名字是 前缀__语言名称_国家地区名(大写).properties。
8 OGNL是什么? 你在项目中如何使用它
OGNL是:对象图形导航语言。
Struts2中默认的表达式语言就是OGNL,任何取值默认都是OGNL中以压栈方式取值
9 Strust2如何访问Servlet API
1:通过ActionContext可以获得request,application,session三个作用域
2:ServletActionContext去获取原生的API。
10 什么是拦截器 说说Struts2用拦截器来干什么 说出3个拦截器来,
如:国际化,权限,效验等与源代码无关的操作。
国际化,表单重复提交,处理类型转换错误,日志拦截器,等等..
11. 如何实现自定义拦截器?
答:可以继承MethodFilterInterceptor重写doIntercept方法指定某个方法进行拦截,或者继承AbstractInterceptor,重写intercept方法,
14.为什么要继承默认的包?
15 .常见的有那些有十几种结果集类型,
常见的结果集类型有dispatcher,redirect,redirectAction,stream等
默认的是dispatcher,是转发
redirect指重定向,
16 开发项目时struts2在页面怎样拿值?
17.怎么样用Struts2进行文件的上传或者下载
Struts2里面已经提供了默认的拦截器来处理上传,只要在jsp用了s:file标签,然后在Action和Form中做些配置对应即可
下载是用了result为stream的类型,然后在action定义默认值是是InputStream,从硬盘上面读取文件到这个流赋值即可.
18.简单讲下struts里面的标签,说不少于5个
19.默认struts2里面的标签取值都是从那里取值的
21.ValueStack分为那两部分,组成部分是什么,分别怎么访问
22.标签<s:property>和el表达式有什么区别,