struts中html:checkbox在更改记录时怎么判断是否选中?

blurxx 2008-07-25 07:34:09
我描述一个我程序的某功能的一个过程:
1、在数据库中取得一条记录,封装成PO传给前台。
Action如:
StatusService s = new StatusService(); 
AdminStatus statusDb = s.getStatus(Integer.parseInt(id));
request.setAttribute("STATUS", statusDb);
return mapping.findForward("success");


2、PO中有boolean型属性,如private boolean controlAll;(默认false)

3、PO传回前台,是为了修改这条记录。那么我们势必需要把它的所有属性放入html组件中,比如说放入
<html:text value=<%=po.getXX()%>../> 


当我们做boolean属性的时候,经常会用html:checkbox

这时我们需要判断:
<!-- 判断结束 --> 
<!-- 当PO STATUS中的controlAll为false时 -->
<logic:equal name="STATUS" property="controlAll" value="false">
<html:checkbox property="status.controlAll" styleClass="np"></html:checkbox>
</logic:equal>

<!-- 当PO STATUS中的controlAll为true时 -->
<logic:equal name="STATUS" property="controlAll" value="true">
<html:checkbox property="status.controlAll" styleClass="np" value="<%=String.valueOf(status.isControlAll())%>">

<!-- 隐含属性,避免checkbox组件被一直选中 -->
<input type="hidden" name="status.controlAll" value="false"></input>
</html:checkbox>
</logic:equal>
<!-- 判断结束 -->


这时我发现,当记录controlAll为true的时候,第一次进入修改功能页面,checkbox并没有被选中,只有提交过一次后,才会正常。

就是说:controlAll为true,进入页面,checkbox并没有被选中,因为controlAll默认为false,但我们点中修改过一次提交后,再回来看,是选中,去掉选中提交,再回来,也是正常。主要是第一次的不正确显示在页面该怎么写呢??
...全文
132 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
youjianbo_han_87 2008-07-30
  • 打赏
  • 举报
回复
用 input checkbox完全可以代替 struts的checkbox标签,而且不用设置什么标识判断是否选择那个复选框
z278121429 2008-07-29
  • 打赏
  • 举报
回复
第一次访问是访问.jsp吗
换成.do试试
雨天wxp 2008-07-28
  • 打赏
  • 举报
回复
应改为:
<!-- 判断结束 -->
<!-- 当PO STATUS中的controlAll为false时 -->
<logic:equal name="STATUS" property="controlAll" value="false">
<html:checkbox property="status.controlAll" styleClass="np"></html:checkbox>
</logic:equal>

<!-- 当PO STATUS中的controlAll为true时 -->
<logic:equal name="STATUS" property="controlAll" value="true">
<html:checkbox property="status.controlAll" styleClass="np" value="<%=String.valueOf(status.isControlAll())%>" checked="true">

<!-- 隐含属性,避免checkbox组件被一直选中 -->
<input type="hidden" name="status.controlAll" value="false"></input>
</html:checkbox>
</logic:equal>
<!-- 判断结束 -->
xian_hf 2008-07-27
  • 打赏
  • 举报
回复
用了<html>和actionform就可以实现楼主的功能啊
用选项框用muliXXX
xian_hf 2008-07-27
  • 打赏
  • 举报
回复
你的ActionForm加上reset方法,把ActionForm放在request范围
blurxx 2008-07-25
  • 打赏
  • 举报
回复
来个人回答吧,虽然分不多,请好心人帮帮忙吧,谢谢了
wanshouerp 2008-07-25
  • 打赏
  • 举报
回复
顶一下别沉了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧