struts练习题
自从学习了struts2已经有很长的一段时间了。回想起以前学习的时候,没撒资料,很感谢当初网友给的几个demo,感激,于是也放出自己复习的demo,如果有错还希望各位多多赐教。
1类型转换
思维启动 在struts1创建FormBean时,对于某个属性到底应该用String还是其它类型?而数据传递 这种交互是建立在http之上,互相传递的都是字符串,这样我们要花多少时间去解决这些转换?
而Struts 2.0中有个Converter被称为魔术师可以帮我们轻易解决这些问题!
第一个包中含有两个例子:这些都包含了隐式转换。这些转换都在我们不经意中被拦截器处理了。而比较明显的就是比如类的转换这些需要额外的添加处理程序,但是转换接口也已经被处理好了。当然还要说明的是全局转换和局部转换在集合方面是有区别的,这点希望大家注意到了
2权限拦截器
思维启动。Struts 2的基石——拦截器。拦截器,在AOP中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。我的感觉就是处理与我本身不相干的事情,让自己更加关注于自己关心的事情。
第二个包中的权限拦截器 就是体现着这样一种思想。之于要拦截网页需要写个filter类,尽管struts2的拦截器和filter有极大的相似,但是,放到配置文件中这时就把网页拦截给省掉了。这里我也采用了和filter类形式差不多的接口Interceptor;
3在一个action中实现多个业务方法
思维启动。在struts1.x中,我们是多么喜欢在重复要用到某一个action的时候用上可以省去很多代码的DispatchAction啊!这里struts2也提供了类似的方法。它比struts1.x更加简介,更加优美。配置更加灵活。而且也跟随这validate的改变 ,多么灵活啊。
第三个包中的例子就是这么做的。
4控制重复提交
思维启动。以前第一次看到struts1.x的token令牌,我欣喜不已好简单哦。没想到struts2的做法更加简单。啊迷死我了,这些都源于拦截器的威力啊。神了。
第四个包中就是这么个例子。
5声明式异常处理
思维启动。struts1 是成熟的,任何一个成熟的框架都少不了这个声明式处理。struts2也是。
第五个包中,介绍了两种异常,一个自定义的,一个是java本身提供的。
6模型驱动
思维启动。在struts1中我们要继承FormBean这个类,实现看似美丽的javabean而struts2可不,他直接用了。为了实现和formbean类似的功能,只要在action类中多实现个简单的接口,就完全的ok了。多么方便啊。还记得在webwork inaction中,
说了这么一句话,你是想让牛奶工给你挤牛奶呢,还是让牛给你挤牛奶呢。现实生活中,就有人对这牛大声说:我要牛奶。找牛奶工的办法就是找模型的办法。当然根据设计模型驱动有时也不是最好的。我个人偏好对着牛 喊 给我牛奶。
第六个包中 用的是牛奶工的模式
7filed和action代码验证
思维启动。struts1中也常常遇到关于filed级别的错误或是action级别的错误。struts2同样的。这里我想说的是在struts2中addFieldError()是把值加在了LinkedHashMap中而addActionError()却是加入ArrayList中,这两个是不一样的。
第七个包 用的就是这两种方法,不过只是说明而已。大家看了就应该明白了