Struts2入门
一 Struts2的介绍
-
概念
-
Struts2使用优势
优势 | |
---|---|
1 | 自动封装参数 |
2 | 参数校验 |
3 | 结果的处理(转发 |
4 | 国际化 |
5 | 显示等待页面 |
6 | 表单的防止重复提交 |
-
Struts2具有更加先进的架构以及思想
-
Struts2的历史
- Struts2与Struts1区别就是技术上没有什么关系
- Struts2的前身是webwork框架.
二 Struts2框架的搭建
- 1.导包
- 2.书写Action类
- 3.书写src/struts.xml配置
- 4.将Struts2核心过滤器配置到web.xml中
- 5.测试
三 Struts2框架的访问流程&Struts2架构
1. Struts2框架的访问流程
2.Struts2架构思想
放行前为前处理,放行后为后处理.
注意:灰色为框架已经为我们做好的,红色为需要我们写的.绿色为可以使用现成的,也可以自定义的.
三 配置详解
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- package:将Action配置封装,就是可以在Package中配置很多action.
name属性:给包起个名字,起到标识作用,随便起,不可与其他包名重复
namespace:给action的访问路径中定义一个命名空间
extends属性:继承一个指定包
abstract属性:包是否为抽象的,标识性属性,标识该包不能独立进行,专门被继承
-->
<!-- 把同一个业务下的action放在一个package中 -->
<package name="hello" namespace="/hello" extends="struts-default">
<!-- action元素:配置action类
name属性:决定了action访问资源名
class属性:action类的完整类名
method:指定调用action中哪个方法来处理请求
-->
<action name="HelloAction" class="cn.itheima.a_hello.HelloAction" method="hello">
<!-- result元素:结果配置
name属性:标识结果处理的名称:与action方法的返回值对应
type属性:指定调用哪一个result来处理结果,默认使用转发
标签体:填写页面的相对路径
-->
<result name="success" type="dispatcher">/hello.jsp</result>
</action>
</package>
配置详解:
1.strust2.xml配置
2. strust2中的常量配置
2.1 strust2中默认常量配置位置2.2 修改struts2常量配置(方式先后也是加载先后顺序)
方式一 :src/struts.xml (推荐)
方式二 :在src下创建struts.properties
方式三 :在项目的web.xml中
2.3 常量配置
3.strust2配置进阶
3.1 动态方法的调用
方式一方式二 (推荐)
3.2strust2中的默认配置(了解)
action类详解
Action的书写方式
方式一:方式二:
方式三 (推荐)
五 练习:
用struts2完成crm工程的web部分
分析:
代码:
public class CustomerAction extends ActionSupport {
private CustomerService service = new CustomerServiceImpl();
public String list() throws Exception {
//1.接收参数
String cust_name = ServletActionContext.getRequest().getParameter("cust_name");
//2.创建离线查询对象
DetachedCriteria dc = DetachedCriteria.forClass(Customer.class);
//3.判断参数拼装条件
if(StringUtils.isNotBlank(cust_name)) {
dc.add(Restrictions.like("cust_name", "%"+cust_name+"%"));
}
//4.调用service将对象传递
List<Customer> customerList = service.customerList(dc);
//5.将返回的list放入request域,转发到list.jsp显示
ServletActionContext.getRequest().setAttribute("customerList",customerList);
return "list";
}
}
注意:一定要配置web.xml里的struts核心过滤器
类获取方式为ctrl+shift+t 里面查 strutsp