Multibox标签的用法:
<logic:iterate id="hobby" name="tagInfo" property="hobbies">
<html:multibox property="selectedHobbies">
<bean:write name="hobby"/> 这里是设置checkbox的value属性
</html:multibox>
<bean:write name="hobby"/> 这里是打印checkbox的文本显示
</logic:iterate>
就是两个数组的嵌套使用。Hobbies数组表示所有可供选择的兴趣爱好,selectedHobbies表示用户已有的兴趣爱好。在 iterate的遍历所有可供选择的外层hobbies循环中,内层selectedHobbies将针对hobbies中的每一个值,遍历自己所有元素,如果它们的value相匹配,就使这个checkbox的状态成为”checked”。
Renders an HTML <input> element of type checkbox
, whose "checked" status is initialized based on whether the specified value matches one of the elements of the underlying property's array of current values.
Id 代表外层hobbies每一个对象,iterate的name表示hobbies是指定scope中的一个对象,通过在Action类中request.setAttribute("tagInfo",aTag); 添加。Iterate的property表示name对象的属性。
Multibox的property就是ActionForm中与该jsp控件所绑定的instance variable。
那么现在的情况是checkbox的value属性(就是如果被选中将被提交的值) 和 checkbox的文本显示是一样的。即最终生成的html页面代码如下:
<input type="checkbox" name="selectedHobbies" value="music" checked="checked"> music
那么怎样使两者区分开,比如说value只是个数字,text则表示代表的意义?这个数据库的设计有关,user表,hobby表还有一个user_hobby表。一个user可以有多个hobby,hobby表只存储hobby信息,user_hobby有user到hobby的映射关系(user_id,hobby_id)。
我们改变外层数组元素的类型,设它为一个Hobby类,有id和name,而内层数组元素由于在数据库中的映射只是一个hobby_id,所以可以改变成int类型。于是可以改成
<logic:iterate id="hobby1" name="tagInfo" property="objHobbies">
<html:multibox property="intSelectHobbies">
<bean:write name="hobby1" property="id"/>
</html:multibox>
<bean:write name="hobby1" property="name"/>
</logic:iterate>
而生成的html代码:
<input type="checkbox" name="intSelectHobbies" value="1" checked="checked">音乐
也做到了真实值和显示值得分离。真实值被传递进Action类进行数据操作,显示值只是作为一个显示而已。
分享到:
相关推荐
### 目标检测技术在深度神经网络中的应用 #### 概述 《Scalable Object Detection using Deep Neural Networks》是2014年计算机视觉顶级会议(CVPR)上的一篇重要论文,由Google的研究员Dumitru Erhan、Christian ...
Struts1.x是一个经典的Java Web框架,用于构建MVC(模型-视图-控制器)架构的应用程序。在Struts1.x中,HTML标签库提供了一系列的定制化标签,简化了视图层的开发,比如`html:radio`, `html:checkbox`, `...
- [Struts Tag Libraries](https://struts.apache.org/1.x/struts-developer-guide/tag-reference.html) 通过阅读和实践,开发者可以更加深入地理解Struts1框架的核心概念和实现机制,从而在实际项目中更高效地运用...
SSD(Single Shot MultiBox Detector)是一种高效的目标检测算法,由Wei Liu等人在2015年提出。它在计算机视觉领域中具有重要的地位,因其能够实现端到端的实时目标检测,即在一个单一的网络前向传递过程中完成定位...
Single-Shot MultiBox Detector(SSD)是一种高效的目标检测算法,尤其适合实时应用。它将检测和分类任务合并到一个单一的网络中,避免了传统两阶段检测器(如Faster R-CNN)中的繁琐步骤,如区域提议生成。Python和...
`struts-config.xml`文件是Struts框架的核心配置文件之一,用于定义应用程序的各种配置信息,如Action mappings、form beans等。 ##### 4.Struts的工作流程 - 用户发起HTTP请求到服务器。 - 请求被Struts的Action...
Diese Seite bei 民事诉讼法 Dieses存储库中的Makeshinzugefügtwerden中的kann als Erweiterung 。 öffnehttps //makecode.microbit.org/ 克利克·奥夫·诺伊斯项目 klicke奥夫Erweiterungen温特DEM Zahnrad...
Diese Seite bei 民事诉讼法 Dieses存储库中的Makeshinzugefügtwerden中的kann als Erweiterung 。 öffnehttps //makecode.microbit.org/ 克利克·奥夫·诺伊斯项目 klicke奥夫Erweiterungen温特DEM Zahnrad菜单...
Diese Seite bei 民事诉讼法 Dieses存储库中的Makeshinzugefügtwerden中的kann als Erweiterung 。 öffnehttps //makecode.microbit.org/ 克利克·奥夫·诺伊斯项目 klicke奥夫Erweiterungen温特DEM Zahnrad...
卷积MultiBox检测器,尤其是Single Shot MultiBox Detector (SSD),是计算机视觉领域中用于目标检测的重要技术。SSD是一种高效且实时的目标检测算法,它结合了卷积神经网络(CNN)的特征提取能力与多尺度预测的思想...
Struts 框架的核心优势之一在于它的标签库,这是一套专门设计用于简化Web开发过程的工具集合。通过使用这些标签,开发者能够有效地将业务逻辑与展示逻辑分离,使得不懂Java语言的网页设计师也能参与到项目的开发中来...
#### 三、总结 通过上述介绍,我们可以看到Struts HTML标签库提供了丰富的工具来帮助我们快速构建用户界面。这些标签不仅简化了HTML表单的编写过程,还使得与后端ActionForm对象的绑定变得简单易行。正确地使用这些...
"mobile_multibox model"是一种基于TensorFlow实现的深度学习模型,特别设计用于移动设备上的目标检测任务。在图像识别和对象检测领域,MobileMultibox以其轻量级和高效的特性而备受青睐,它能够实现在资源有限的...
State-of-the-art_Single_Shot_MultiBox_Detector_in__SSD.TensorFlow
在Python中使用OpenCV在Caffe MobileNet上使用Single Shot MultiBox Detector进行目标检测。 SSD框架 单发MultiBox检测器可分为两部分: 使用基础网络提取特征 使用卷积滤波器进行预测 此实现将MobileNet深度学习...
本文将深入解析Struts2中的核心标签,包括HTML Tag、Bean Tag、Logic Tag、Nested Tag以及Template Tag,并探讨它们在实际开发中的应用。 ### 1. HTML Tag HTML Tag主要用于创建能够与Struts框架及其它相关HTML...
通过上述详细介绍,我们可以看到Struts标签的强大之处,它不仅简化了Web开发的工作量,还提高了开发效率。无论是从数据绑定、表单生成还是逻辑控制等方面,Struts都提供了一套完整的解决方案。因此,对于想要深入...
目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,...
Action是STRUTS框架的核心组件之一,负责处理用户的请求并决定应用程序的流程。创建Action的具体步骤如下: 1. **继承Action类:** 创建一个Java类继承自`Action`。 2. **实现execute方法:** 覆盖`execute`方法来...