系统学习javaweb-12-SSH整合开发demo

javaweb学习笔记-SSH整合开发demo

链接:https://csxiaoyaojianxian.github.io/javaweb_study06
名称:SSH整合开发demo,实现CRUD和登陆验证
版本说明:

struts - 2.3.4.1
spring - 3.2.5
hibernate - 3.6

【知识点】

1 模型驱动

1.1 实现接口

 implements ModelDriven<Employee>

1.2 封装数据

EmployeeAction中数据的自动封装(Employee)与手动封装(deptId)

private Employee employee = new Employee();   // 【模型驱动】
// 封装请求的部门id(下拉列表的实际的值)
private int deptId;
public void setEmployee(Employee employee) {
    this.employee = employee;
}
public Employee getEmployee() {
    return employee;
}
public void setDeptId(int deptId) {
    this.deptId = deptId;
}
public int getDeptId() {
    return deptId;
}

1.3 实现RequestAware接口

//实现RequestAware接口
public class EmployeeAction extends ActionSupport implements ModelDriven<Employee>, RequestAware{
    // 接收框架运行时候传入的代表request对象的map
    private Map<String, Object> request;
    @Override
    public void setRequest(Map<String, Object> request) {
        this.request = request;
    }
}

2 注入,使用接口接收

// 注入Dao,【此处一定要用接口接收】
private IDeptDao deptDao;//JDK代理
public void setDeptDao(IDeptDao deptDao) {
    this.deptDao = deptDao;
}

此处声明的deptDao是一个IDeptDao接口,而非DeptDao类对象,原因在于:setDeptDao(IDeptDao deptDao)中传入的deptDao为Proxy代理类(继承了IDeptDao接口),如果为setDeptDao(DeptDao deptDao),则类型不匹配,无法传入

3 抽取BaseDao(反射泛型的应用)

将【IOC容器(依赖)注入SessionFactory对象】抽取到BaseDao,作为对比,EmployeeDao继承了BaseDao,其他Dao未继承

4 页面包含

<!-- 包含头部页面 -->
<jsp:include page="/head.jsp"></jsp:include>

5 拦截器配置

struts.xml、UserInterceptor.java

6 全局视图、全局异常配置

struts.xml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值