Struts2框架下拉选择框详解及与Struts1对比
需积分: 21 193 浏览量
更新于2024-08-18
收藏 493KB PPT 举报
本文主要探讨了HTML中的表单标签`<select>`,以及Struts2框架中`s:select`标签的使用,特别针对Java程序员进行讲解。文章通过示例展示了如何创建下拉选择框,并对比了Struts1和Struts2的区别。
在HTML中,`<select>`标签用于创建下拉列表,用户可以从中选择一个或多个选项。例如:
```html
<select name="list" id="list">
<option value="Java" selected="selected">Java</option>
<option value=".Net">.Net</option>
</select>
```
在这个例子中,`<select>`标签定义了一个名为"list"的选择框,`id`属性用于唯一标识该元素。`<option>`标签则定义了可以选择的值和显示文本。`value`属性是选项的值,`selected`属性表示默认选中的选项。
在Struts2框架中,`<s:select>`标签提供了更为灵活的选项绑定。例如:
```jsp
<s:select name="list" list="{'Java','.Net'}" value="'Java'"/>
```
这里,`list`属性用于绑定一个Java集合,如数组或列表,其值会作为下拉选项。`value`属性指定了默认选中的值。
对于对象和映射的绑定,Struts2同样提供了支持:
```jsp
<s:select name="beans" list="#request.persons" listKey="personid" listValue="name"/>
<s:select name="map" list="#{1:'瑜珈用品',2:'户外用品',3:'球类',4:'自行车'}" listKey="key" listValue="value" value="1"/>
```
在上述例子中,`listKey`和`listValue`分别指定了集合中用于显示和值的属性。`#request.persons`通常是从请求上下文中获取的Map,`personid`和`name`是Map中的键和值。而对于直接的Map对象,如示例中的#{...},`key`和`value`属性则直接对应Map的键和值。
接下来,文章提到了Struts框架的发展历程。Struts1虽然在早期非常流行,但由于其与JSP/Servlet的紧密耦合,以及单一的表现层技术,逐渐暴露出一些问题。因此,Struts2应运而生,它融合了WebWork框架,解决了Struts1的很多局限性,提供了更强大的拦截器机制和更灵活的视图层支持。
Struts2的处理流程大致如下:
1. 浏览器发起请求。
2. FilterDispatcher(核心控制器)根据请求调用相应的Action。
3. WebWork的拦截器链处理通用功能,如验证。
4. Action的`execute`方法执行业务逻辑。
5. 处理结果返回给浏览器,支持多种视图展示方式。
与Struts1相比,Struts2的改进包括但不限于:
- 更低的侵入性,减少对API的依赖。
- 拦截器链使得扩展性和可测试性更强。
- 支持更多视图技术,如FreeMarker和Velocity等。
- 更好的类型安全性和动态方法调用。
本资源提供了关于HTML`<select>`标签和Struts2`s:select`标签的基础知识,同时深入介绍了Struts1与Struts2框架的差异和改进之处,对于理解Java Web开发中的表单处理和MVC框架有很好的帮助。
375 浏览量
2023-06-13 上传
2023-06-07 上传
2024-10-31 上传
2024-09-11 上传
2023-05-20 上传
2024-10-31 上传
辰可爱啊
- 粉丝: 17
- 资源: 2万+
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器