首先介绍一下struts2使用的基本步骤:
1.导入相关的 jar 文件
2.需要在 web.xml 文件中配置一个 StrutsPrepareAndExecuteFilter(只有配置了它才可以使用 struts2 框架)
3.struts.xml 配置
4.创建 Action 来完成逻辑操作
如何导入jar文件?
web.xml 文件中配置一个 StrutsPrepareAndExecuteFilter
struts.xml 配置
C
Action的创建方式
1.一个普通类,不用实现任何接口 ,也不需要继承任何类
优点:无耦合
缺点:所有的功能都要自己完成
2.实现Action接口
在 Action 接口中定义了五个常量,一个 execute 方法(如果没有配置访问的方法,默认执行这个方法)。
五个常量:它们是默认的五个结果视图<result name=””>:
ERROR : 错误视图
INPUT: 它是 struts2 框架中 interceptor 中发现问题后会访问的一个视图
LOGIN:它是一个登录视图,可以在权限操作中使用
NONE:它代表的是 null,什么都不做(也不会做跳转操作)
SUCCESS:这是一个成功视图
优点:耦合度低
缺点:还是需要自己来完成功能
3.继承ActionSupport类(这个类也实现了Action接口)
优点:具有丰富的功能,例如 表单校验 错误信息设置 国际化
缺点:耦合度高
如何在struts中获取请求的数据?
主要有两种方式:
1.属性驱动
a.直接在 action 类中提供与请求参数匹配属性,提供 get/set 方法
b.在 action 类中创始一个 javaBean,对其提供 get/set ,在请求时页面上要进行修改,
例如 user.username user.password ,要使用 ognl 表达式
以上两种方式的优缺点:
第一种:比较简单,但是封装数据时比较麻烦
第二种:不需要在直接将值给javaBean过程,因为直接将数据封装到了javaBean
中。兼容性差,因为它要求在页面上必须使用 ognl 表达式,就存在页面不通用问题。
2.模型驱动
步骤:
1.让 Action 类要实现一个指定接口 ModelDriven
2.实例化模型对象(就是要 new 出来 javaBean)
3.重写 getModel 方法将实例化的模型返回。
补充:result标签中的type属性的可选值,这些值在struts-default.xml有配置
默认值是 dispatcher 它代表的是请求转发,针对于 jsp 页面
redirect 它代表的是重定向 ,针对于 jsp 页面
chain 它类似于请示转发,只不过它是针对于 action 跳转
redirectAction 它类似于重定向 ,针对于 action