SSH开发概述

1 SSH开发概述 1

2 Struts2 2

2.1 基本概念 2

2.2 OGNL 2

2.3 Struts2标签 5

3 spring基本概念总结 6

1 SSH开发概述

新建web项目-导入类库(jar包)-配置web.xml(struts2、spring)-新建applicationContext.xml(WEB-INF)
新建数据库:主键+其他字段,applicationContext.xml中配置数据库信息
持久层设计:po类(.java)、映射文件(.hbm.xml)、applicationContext.xml中配置sessionFactory(产生session)、hibernateTemplate(获得session)
DAO层设计:DAO组件(接口类、实现类【需要继承HibernateDaoSupport】)设计、applicationContext.xml中配置DAO组件
业务逻辑层设计:业务逻辑组件(接口类、实现类【引入和设置DAO组件用于依赖注入:setter方法】)设计、applicationContext.xml中配置业务逻辑层组件
MVC层(action层)与表现层设计(分功能模块设计):创建控制器(action【需要继承ActionSupport,引入和设置业务逻辑组件用于以来注入:setter方法,执行execute方法】)、创建用户信息显示页面、配置applicationContext.xml、新建struts.xml(src)并进行配置

注释:MVC层:M(业务逻辑层)-V(表现层)-C(action层)
类的引用是通过bean-id实现的,在applicationContext.xml中相邻层中得到了充分的体现。

其他高级设计:
1.使用struts2添加校验器
struts2验证框架分为字段(field校验--面向字段、字段优先)校验器和非字段(validator--校验面向validator、validator优先)校验器.  通过验证框架验证,只需要删除掉原来validate()方法中的内容,再增加一个xml文件即可:一个Action对应一个验证xml(RegisterAction.class-->RegisterAction-validation.xml并在同一个包中,注意文件名的对应关系)
此外,struts.xml中对应action需要设置input属性,因为校验可能需要返回上一步
2.配置国际化

 

2 Struts2

2.1 基本概念

Action(简单数据校验)
Result
常用配置文件(配置文件copy、改)
OGNL&ValueStack
Tags
做项目(类型转换、上传与下载、interceptor、防止重复提交)
MVC思想深入剖析
源码解读
其他话题(校验框架、I18NAJAXFreeMarker、异常处理) 

2.2 OGNL

对象导航语言(看百度百科:http://baike.baidu.com/view/1347280.htm)

struts2中默认表达式语言,必须配合struts2标签使用。

在request范围内,可以用jstl/EL表达式替换

 

支持对象方法调用

支持类静态方法调用和值访问,用@类全名@方法

操作集合对象

 

上下文就是一个map结构

OGNL Context实现者为ActionContext

struts接受到一个请求时,先创建ActionContext,然后创建ValueStack,再创建action,action中值全部放入ValueStack(值栈,根对象)

访问上下文中的对象需要使用#符号标注命名空间,如#session

另外OGNL会设定一个根对象,struts2中根对象是ValueStack,访问根对象中对象属性,可以省略#命名空间,直接访问对象的属性。

OGNL Context:ValueStack(根对象)、application、session、request、attr

执行action,会将action放入值栈,其对应对象作为默认提取对象(只有值栈中对象可以用EL表达式直接获取)。

值栈的概念可以参考http://blog.csdn.net/woshisap/article/details/7272062 进行学习

广义值栈是ActionContext(OGNL Context),狭义值栈就是ognl访问的根对象ValueStack

#主要有三种用途:访问OGNL上下文和Action上下文(放入前者),#相当于ActionContext.getContext();

 

创建集合对象:list、map对象,取出需要迭代(由于没有指定,创建的对象放在OGNL Context中,与ValueStack、application等并列,可以直接用#+命名空间取得)s:iterator在迭代集合时有个特点:会把当前的迭代对象放到值栈的栈顶。

 

 

  

 

 

 

 

  =

 

 

使用OGNL表达式判断元素在不在某个集合中

in     在

not in 不在

 

 

 

OGNL表达式可以实现投影与选择功能(放入子集合中)

投影:选择各元素的相同属性放到新的集合(子集合)中,比如选择学生表中的姓名(本质是数据库的字段操作)

操作语法:collection.{XXX}XXX这个集合中每个元素的公共属性

例如:student.{name}

选择:有3种选择操作符:? 选择满足条件的所有元素   ^ 选择满足条件的第一个元素   $ 选择满足条件的最后一个元素

选择满足条件的集合元素

操作语法:collection.{XYYY}X是选择操作符YYY选择用的逻辑表达式

例如:book.{?#this.price>60}

 

2.3 Struts2标签

写jsp页面的时候,在struts2中,用的是s标记,先引入标记:

前提也是有jar包

 

UI标签

 

 

 

 

 

复选框:

列表

 

value表示默认选中项

map

<>

listKey="key" listValue="value" value="{'key1','key2'}"/>

listkey对应value值用于处理,value用于label

对象

request.setAttribute("persons",list);

 

 

单选框下拉列表框与复选框基本一样

 

 

 

非UI标签

 

 

默认是放在OGNL Context中

 

       

 

status返回迭代状态对象

 

 

       

 

 

show

b

c

url(命名空间)

 

 

 

 

结合使用,自动附上上下文路径和文件后缀

 

如果某个属性默认当做字符串处理的情况下需要使用%{}表明是OGNL表达式

 

 

 

 

3 spring基本概念总结

spring致力于J2EE应用的各层解决方案
1.不使用spring的话,hibernate的数据库连接信息是配置到hibernate.cfg.xml
使用spring的话,hibernate的数据库配置可以设置到applicationContext.xml
2.不使用spring的话,需要手动提交事务和获取session
使用spring以后,不需要手动提交事务,可以通过hibernateTemplate来获得session,或者直接通过
hibernateTemplate来操作。
3.在struts的配置里面不再是直接指定action的Class,而是指定其在spring容器中的bean id

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值