1.DomainModel里没有new 对象时,想要struts new 出对象则需传递对象的参数(属性值),且domainmodel中要有默认的构造函数
2.代码上右键source--sort members 可以对属性排序
3.ognl 即object graph navigation language
4.struts2.1中想访问action中静态方法需要在struts.xml中添加<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
5.<li>访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
<li>访问值栈中对象的普通方法:<s:property value="cat.miaomiao()"/></li>
<li>访问值栈中action的普通方法:<s:property value="m()"/></li>
<li>访问静态方法:<s:property value="@com.xlt.struts2.ognl.S@s()"/></li>
<li>访问静态属性:<s:property value="@com.xlt.struts.ognl.S@STR"/></li>
<li>访问math类的静态方法:<s:property value="@@max(2,3)"/></li>
<li>访问普通类的构造方法:<s:property value="new com.xlt.struts2.ognl.User(8)"/></li>
<li>访问list:<s:property value="users"/></li>
<li>访问list中某个元素:<s:property value="users[1]"/></li>
<li>访问list中元素某个属性的集合:<s:property value="users.{age}"/></li>
<li>访问list中元素某个属性集合中的特定值:<s:property value="users.{age}[0]"/>|<s:property value="users[0].age"/></li>
<li>访问set :<s:property value="dogs"/></li>
set里的元素无顺序,所以不能以set[0]来取得set 中第一个元素
<li>访问map:<s:property value="dogmap"/></li>
<li> 访问map中某个元素:<s:property value="dogmap.dog101"/>|<s:property value="dogmap['dog101']"/>|<s:property value="dogmap[\"dog101\"]"/></li>
在ognl中可以用\"来引出字符串,也可以用 ' 来引出,而在java中 ' 只能引出字符
<li>访问map中所有的key:<s:property value="dogmap.keys"/></li>
<li>访问map中所有的value:<s:property value="dogmap.values"/></li>
<li>访问容器的大小:<s:property value="dogmap.size()"/></li>
正则里,^表示开头,?表示过滤条件,$表示结尾
<li>投影(过滤):<s:property value="users.{?#this.age==1}.{age}"/></li>
<li>投影:<s:property value="users.{^#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
<li>投影:<s:properyt value="users.{$#this.age>1}.{age}==null"/></li>
<li>[ ]:<s:property value="[0]"/></li>
访问值栈里的第一个到底的对象集合,result type="chain"时,会压入多个action到值栈中。