Struts的html:checkBox标签超郁闷的问题

Pinocchio 安装教程|机器人学的必备库 安装pinocchio,不要安装pip3 install pinocchio! 阅读详情

1)需求:
当通过菜单进入页面时,页面中的checkbox处于被选中状态,页面提交后forward回本页,对应的checkbox保持提交时的状态,也就是说:如果提交时checkbox是选中状态回来仍然是选中状态;如果用户在提交前将checkbox的勾去掉,回来时checkbox应该为为选中状态。

2)问题:
这个需求看起来很简单,只需要
1)在对应的form中将checkbox对应的属性设为true就行了:
private boolean syaken = true;
2)在对应的jsp中使用html:checkbox标签就行了
<html:checkbox property="syaken"/>
但问题是checkbox标签不会去set初始化值为true的checkbox属性,不赋初值时Struts默认赋为false;
从网上找资料有人说可以实现ActionFrom的reset()方法将对应的属性值设为false,但reset方法是在form实例化以后被调用的,也就是说你初始化的值true将被重置为false,这和直接将属性值设为false没有任何区别,这样做的结果是你从菜单进入页面时checkbox是处于不被选中的状态。
他们之间存在着矛盾,问题的关键就是每次提交时,Struts并没有去重新设置所有checkbox的属性值,而是有选择地(初始化值为false)地进行重新设置。

3)解决办法:
超级简单,在checkbox后面添加一个和checkbox的属性同名并且value为“false”的隐藏输入框,强迫Struts去重新设置checkbox的属性值:
<html:checkbox property="syaken"/>&nbsp;
<input type="hidden" name="syaken" value="false">
=================================================================================
以上为转载。

经过本人尝试之后,觉得此方法是行得通的。

其实multibox也存在相似问题。
假设: 在 form 里面定义 : private String[] seqNum = null;
当 seqNum 长度为 “1”的时候,也就是 jsp上显示的multibox 的个数为一个。
这个时候,在javascript里使用:
document.all.seqNum[0] , 通过alert(document.all.seqNum[0] ),发现结果是undefined,并不是我们所期望得到的checkbox的对象。
如果 seqNum 的长度 〉1, 则不出现以上的问题。

同时:如果 seqNum 的长度 = 1时,multibox提交到后台时,出现了上文同checkbox的选中状态不正确的问题。

现在自己解决的方法就是:加一个隐藏域。
<input type="hidden" name="seqNum" value="-1">
这样作就增加了 seqNum 的长度,使其长度 > 1,暂时解决了提交问题。

假设: 某一览画面有multibox,并且对应3组数据。
作如下操作:1.第一条记录的checkbox钩上,提交,form得到第一条数据
2.把刚才钩上的checkbox钩掉,提交,form还是得到第一条数据,
并不是我们所想象的 seqNum = null 或者 seqNum.length=0。

解决方案还是原来的方法:
<input type="hidden" name="seqNum" value="false">
其中 value 只要不与 其他multibox混淆,理论上可以用任意值。

注:
document.all.seqNum[0] 指的是隐藏 seqNum 的值。

document.all.seqNum[1] 开始往后指的才是 真正画面上Multibox的东西。


但是这样做也会给一些其他的操作和算法带来麻烦,并不是万能的。


小米汽车车载多摄像头视频链路深度解析 | MAX96792/MAX96724/MAX96781 实战分享 通过合理的输入输出规划 + 虚拟通道管理 + 加串行策略,可以在成本和性能之间取得最佳平衡,这就是多摄像头系统设计的核心精髓。 阅读详情

相关推荐

strutshtmlcheckbox标签的默认选中问题

strutshtmlcheckbox标签的默认选中问题

Struts html:checkbox框初始默认是选中的解决方法

在使用struts标签html:checkbox 的时候,如何让checkbox框默认是选中的,本文提供解决方法,需要了解的朋友可以参考下

YAMHHA雅马哈RCX340基本接线及控制.pdf

RCX340基本接线及控制

struts1 tag <html:checkbox>的使用

&lt;html:checkbox&gt;的用途是把一个对象的属性(比如boolean)和页面的checkbox相对应。但是感觉它本身做的并不完美,实际使用有很多需要注意的地方。 1。对象属性值和checkbox对应。 假设我们的form有个属性class C1, 它有个boolean属性isChecked。我们有两种方式把这个属性的值显示到页面上: &lt;html:checkbox name=...

fishyych 204

Struts 复选框示例

下载此Struts复选框示例– Struts-CheckBox-Example.zip 在这个Struts示例中,您将学习如何使用Struts <htmlcheckbox>标签创建HTML复选框输入字段。 1.文件夹结构 这是Maven创建的最终项目结构。 请创建相应的文件夹。 2.动作课 创建一个Action类,只转发请求。 HtmlCheckB...

一名可爱的技术搬运工 295

struts标签html:checkbox

在使用struts标签html:checkbox 的时候,如何让checkbox框默认是选中的,一般情况 下都是当formbean里面该property的值和标签上value给定的值相等的时候,生成的jsp页面上才是选中的,其实,还有几种情况都可以使标签初始就是选中的,formbean里面该property的值设为 1.on 2.yes 3.true 4.等于标签上value指定的值, 4种情况下

pian_yun的专栏 5965

Struts Html:Checkbox 标签使用技巧

    在使用strutscheckbox标签时,如果利用actionform进行初始化赋值,在进行对checkbox操作时,将不  能对actionform中的属性进行设置,返回的始终是初始化赋值的value。也就是说,无论怎么操作checkbox都不会有反映,这不是我们所想要的。  解决方法:在formname" property="aa">后面加上           formna

cybercdc的专栏 3952

【转帖】Strutshtml:checkBox标签郁闷问题本篇文章来

<br />Strutshtml:checkBox标签郁闷问题时间:2010-01-21 10:45:01来源:网络 作者:未知 点击:620次 <br />被Strutshtml:checkBox标签使用的小问题郁闷了两天,今天终于找到了解决的办法。如果大家也遇到同样的问题,可以参考。<br />被Strutshtml:checkBox标签使用的小问题郁闷了两天,今天终于找到了解决的办法。如果大家也遇到同样的问题,可以参考。<br />1)需求: <br />      当通过菜单进入页面时,页

Delphicaijie的专栏 695

struts标签html手册

html:base 虽然这里的标题是html:base标签,但是这里也是这篇指南要介绍的第一个Struts html标签。因此我想在这里从整体上简单的介绍一下,最后给出一个对照表。其中的绝大多数标签就不一一介绍了,要介绍的也不会在这里介绍,而是将其独立出来以显重要性。从用户处收集数据是动态web应用非常重要的一个方面,因此构建输入表单也就自然而然的成为struts框架的一个重要内容。Struts

技术空间站 2939

【解决】关于Struts2 Checkbox标签回填的办法

Struts2自带着许多标签,控制和数据部分的使用较多,UI部分的标签其实用得并不多,但实然用到了,有时可能会让你措手不及,就拿Checkbox标签的回填来说。       Struts2对Checkbox标签的描述如下: Description Renders an HTML input element of type checkbox, populated by the

6819

Struts2的checkbox标签

Struts2的checkbox标签

dfhjryvx的博客 180

JavaWeb----学习(28)----struts2---struts2 的checkbox标签 VS HTMLcheckbox标签

1.HTMLcheckbox标签       JSP页面代码: ddddd:&lt;input type="checkbox" name="ddddd"&gt; &lt;s:submit type="submim"&gt;&lt;/s:submit&gt;    浏览器解析代码:     浏览器页面当该复选框被选择时,request请求中向后台发送的参数中,是存在ddddd标签的值..

lsh15846393847的博客 221

Struts Html:Checkbox 标签使用技巧

在使用strutscheckbox标签时,如果利用actionform进行初始化赋值,在进行对checkbox操作时,将不  能对actionform中的属性进行设置,返回的始终是初始化赋值的value。也就是说,无论怎么操作checkbox都不会有反映,这不是我们所想要的。   解决方法:在&lt;html:checkbox name="formname" property="aa"&gt;...

lyxwwwlyx的专栏 220

C语言与Python跨语言UDP通信实战:从协议原理到工程实现

网络通信是分布式系统和物联网应用的基础,其核心在于理解不同传输层协议的特性。UDP(用户数据报协议)作为一种无连接、不可靠的协议,因其极低的协议栈开销和简单的通信模型,在特定场景下展现出独特优势。其原理在于直接封装数据报进行传输,无需建立和维护连接状态,这带来了高性能和低延迟的技术价值。在嵌入式系统、实时数据采集和高性能服务器等应用场景中,UDP常被用于传感器数据上报、状态心跳和实时音视频流传输。本文聚焦于C语言与Python的跨语言通信,通过实战演示如何利用UDP实现轻量级数据交换,并深入探讨了应用层协议

weixin_34354173的博客 301

下拉菜单HTML/CSS/JS实现

本笔记系统讲解下拉菜单的实现原理与技术细节。结构上采用ul-li嵌套,通过子选择器与绝对定位精准控制层级。交互实现区分悬停版(鼠标移入移出自动显隐)与点击版(点击切换+空白收回)。CSS过渡动画详解transition用法,强调display不支持过渡,需用height变化配合overflow:hidden实现平滑展开收起。JS部分涵盖动态高度计算、元素加载时机、事件冒泡机制及stopPropagation阻止传播,适合初学者掌握常见交互组件的完整开发流程。

carlos20031004的笔记博客 426
下一篇: 经典String str = new String("abc")内存分配问题
luyang1016
博客等级 码龄23年 47粉丝 41原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值