Struts2 OGNL中的投影(过滤)
<s:property value="users.(?#this.age==1)"/>
获得是一个User的对象的一个集合
<s:property value="users.(?#this.age==1).{age}"/>
获得满足条件的这样一个集合中的age值;注意{age},花括号在OGNL中本身代表着
是一个集合
<s:property value="users.(?#this.age==1)[0]"/>
获得满足条件的这个集合的第一个元素
<s:property value="users.(^#this.age>1).{age}"/>
获得大于一的集合的元素里面,开头一个age值的集合
<s:property value="users.($#this.age>1).{age}"/>
获得大于一的集合的元素里面,结尾一个age值的集合
<s:property value="users.(^#this.age>1).{age} == null"/>
return false;
软件开发的思想:
采用迭代式的开发模型:首先构造出原型出来,在此基础上一点点的网上加。
在此基础上不断的迭代,应变需求的迭代,开发者的士气很大。
1、决绝使用else关键字:使用“卫语句”和他“提前返回”替代它————策略模式
基于多态,更清晰的表达代码的意图。
2、封装所有的原生类型和字符串
3、一行代码只是用一个"."导航
描述清楚代码的意图:The law of Demeter:只恨身边的朋友打交道。
4、不要使用缩写
1、项目范围增量(Scope burn-up):对于某期限时所需交付项目范围情况。
2、交付质量(Delivery quality):最终交付的项目状况。
3、预算燃尽(Budget burn-down)根据项目范围交付状况统计的预算使用情况
4、实际开发状态(Current State of implementation):已交付的系统功能情况
5、团队的感觉(Team perception):团队对项目状态的看法.