//<s2:set name="payforlist" value="#request.payforlist"/>  
//将类中的值映射到网页中 value数据源为request.payforlist
  第一个疑问 为什么要有"#"?
// <s2:if test="#payforlist==null||#payforlist.size()==0">
//if语句 一定要带一个test 返回值为BOOlen值
  第二个疑问 test=后面又有一个'#'   
  payforlist 应该是第一条语句name后面的属性吧
  payforlist的size() 方法 是不是因为 request.payforlist是list对象才有的呢,
  不会任何对象都会有size()方法吧 <s2:else>                
 <s2:iterator status="payforStatus" value="payforlist"> <s2:if test="#payforStatus.odd"><tr height="23"></s2:if> <td width="50%">『<b><s2:property value="#session.typeMap[infoType]"/></b>』<a href="info_SingleShow.action?id=<s2:property value='id'/>"><s2:property value="getSubInfoTitle(20)"/></a></td>
<s2:if test="#payforStatus.even"></tr></s2:if>

//这段猜不出来!
</s2:iterator>
</s2:else>