struts

[Struts]

-OGNL //Object Graph Nevigation Language  //对象图导航语言

 -传参时只有传递domainmodel,name 才会构造domainmodel   且调用空的构造方法;

       若domainmodel中还有类,只有传参给该类值时  才会构造,否则为null;

        -访问domainmodel的方法 value=”MethodName()”;访问普通对象方法value=”T.t()”;

        -访问静态方法名:value=”@ClassName@MethodName()|Attribute”

        -访问Math类方法:value=”@@MethodName()”

        -访问普通类的构造方法:value=”new ClassName()” 返回String

        -访问List:value=”LisName”

        -访问Lsit中某个属性的集合:value=”ListName.{attribute}”

        -访问Map:value=”MapName.[keyName|keys|values]”

-投影 过滤

   -value=” collection.{[?|$|^]#.condition}”//?|$|^符合条件的[所有|最后一个|第一个]集合

-[]

   -value=”[0].attribute” //[0] 拿到Value Stack 的集合 .attribute遍历Stack查找attribute

 *在服务器端做action跳转时,action会被压到Value Stack中,栈中会出现多个action.

-tags:

  -property:输出;

         -escape 默认为true;  是否避免html解析

 -set: 设定属性

         -<s: set var=”Name”value=”value”/> 范围默认为request和ActionContext

                可以用scope设定范围:request session applicationpage action

  -bean:  标签开始 new对象放到栈顶  结束出栈

         -<s: bean name=”ClassName”var=”AttributeName”> 在Action Context中加bean

                可以用param设定类中的属性值;

  -include 包含文件(不推荐)

         -%{#var}将var当做ognl表达式.

  -iterator 遍历collection map enumerationiterator array

         -status 状态 .count|.index遍历过的总数|索引 .odd|.even count是奇数|偶数

 -去除fielderror中的样式

         -自定义css (覆盖struts 2 的css)

         *-覆盖fielderror 在src中建文件template/simple/fielderror.tld 覆盖原来样式

         *-自定义theme主题.

 -命名规则:

a)        库名:项目名

b)        表的命名:_Model名

c)        字段:保持和属性名一致(尽量不要起名和数据库命名冲突)

d)        用层来划分包com.bjsxt.bbs.actionmodel(bean) service dto(vo) 或用模块划分包

e)        Action XXXXAction

f)         struts配置文件:*-*

g)        namespace: 前台:”/”,后台:”/admin”

h)        package: 前台:“action”  后台:adminAction

 

 -异常处理: 声明式异常 用拦截器实现.

         -在<action>中加

<exception-mapping result=”error”exception=”packageName.ExceptionName”>

<result name=”error”>errorpage</result>

--一般异常处理设为global的,全局都用同一的错误处理

 

         -I18n解决编码(国际化)问题     (too far)

                  

         -Struts的原理:

                   Struts2Filter->Dispatcher(调度器)->ActionProxy(action代理)->ActionInvocation->

         Interceptors(遍历拦截器)->ActionClass

 

         -拦截器一种设计理念(AOP Aspect-OrientedProgramming) 在处理消息之前进行判定

                   -token拦截器控制重复提交。Token拦截器不在defaultStack中需自己引入.

                       重复后 返回”Invailid.token”  (很少用)

        

         -类型转换:

                   创建自己的类型转换器:

                            继承TypeConverter接口,并注册

                   -3种注册方式:

局部:XXXAction-conversion.properties

p(属性名称) =  converter

全局:xwork-conversion.properties

com.xxx.XXX(类名)= converter

Annotation

 

*如果遇到非常麻烦的映射转换:

request.setAttribute();

session

 

 

提高!~看源码!~~~

*******EXT*****AJAX****

 

Struts 2全部内容总结

1.        Action

a)        namespace(掌握)

b)        path(掌握)

c)        DMI(掌握)

d)        wildcard(掌握)

e)        接收参数(掌握前两种)

f)         访问request等(掌握Map IOC方式)

g)        简单数据验证(掌握addFieldError和<s:fieldError)

2.        Result

a)        结果类型(掌握四种,重点两种)

b)        全局结果(掌握)

c)        动态结果(了解)

3.        OGNL表达式(精通)

a)        # % $

4.        Struts标签

a)        掌握常用的

5.        声明式异常处理(了解)

6.        I18N(了解)

7.        CRUD的过程(最重要是设计与规划)(精通)

8.        Interceptor的原理(掌握)

9.        类型转换(掌握默认,了解自定义)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值