Struts标签<s:property和<s:if

来源:互联网 发布:软件版权登记 编辑:程序博客网 时间:2024/06/11 14:14

 今天第一次使用Struts标签,就是因为一个if和property,折腾了整整一个小时,经过了九九八十一难,终于找到了对的方法。

目的:

做出如图的列表,文字前面带个checkbox。

  

分析:

数据结构:

public class AppExamParm{private String check_flag="O"; // 是否选中private String parm_code; // 指标编号private String parm_name; // 指标名称private String lev; // 指标等级private String uplev; // 上级指标private List<AppExamParm> list;    //存放二级指标信息}

其中:“准入条件审查”、“申请材料是否完整等”为一级指标,其下面的若干项为二级指标。

jsp页面显示过程:

1.遍历appExamParmList显示“准入条件审查”等一级指标。

2.获取appExamParmList.get(i)的list。

3.遍历list,输出一级指标下的二级指标。

4.在显示二级指标的时候,同时判断是否选中(我就是因为对Struts标签的不熟悉被拦在这里了)。

正确显示代码:

<s:iterator id="trCode" value="appexamparmList"><!--第一个遍历--><tr><td class="TDstyle02" align="center"></td><td align="left" class="TDstyle02"><b><s:property value="parm_name" /> </b></td></tr><s:iterator id="tdCode" value="list"><!--第二个遍历--><tr uplev='<s:property value="uplev"/>'><td align="center" class="TDstyle01"><input type="checkbox" name="appExams"id="<s:property value='parm_code' />"<s:if test="check_flag=='true'"><!--判断是否选中--> checked  </s:if> /></td><td align="left" class="TDstyle01">--<s:property value="parm_name" /></td></tr></s:iterator><tr id='<s:property value="parm_code"/>'><td colspan="2"></td></tr></s:iterator>

犯过的错误: 

1.
<s:checkbox name="<s:property value='parm_code' />" value="<s:property value='check_flag' />"></s:checkbox>:
不知道为什么,这样写name是一个字符串“s:property value='parm_code'”,而value=true,但是却不勾选。
2.
<input type="checkbox" name="appExams" id="<s:property value='parm_code' />" 
<s:if test="<s:property value='check_flag' />==true">
checked  
</s:if>
/>
这样的判断不对。
原因:s:if是可以直接读取集合值的,就是因为这点所以上述的判断不对,所以我改为了
<s:if test="check_flag=='true'">
 checked  
</s:if> />

1 0
原创粉丝点击