struts2封装好的三种收参方式,零散、对象、集合。

简介: struts2封装好的三种收参方式,零散、对象、集合。

收参,就是将浏览器表单页面输入的数据的值传到后台, 之前用request.getParameter()收参的时候整个过程是比较繁琐的,其缺点主要有:


1.servlet的api侵入到了action类中。Action跟servlet耦合性高。

2.程序员需要手动转换数据类型。

3.程序员需要手动封装成实体对象。

而struts2框架以其强大的功能和优雅的实现使我们的收参方式变得极为的简介轻巧。


下面介绍三种struts2中的收参方式:


1、零散数据的收集

前端页面和后台java代码如下:

首先要注意的是 表单页面中的name属性要和action中 的私有属性名字保持一致! 一定要一致,否则收不到参数,并且一定要提供getter()&&setter()方法,

然后这样Form中的数据就自动封装到了action类的属性里面。

2. 以对象形式收集数据

Action接受表单中的数据转换为实体对象


第一步,需要在entity包下先建立相应的实体类,并且提供相应的getter()&&setter()方法

第二步,在Action类中声明私有的对象引用。且也要提供相应的getter()&&setter()方法。

第三步,然后在页面表单name属性中就可以直接写引用名.属性名  然后台就可以获取到相应的值了。

获取用get方法获取,例如假如想获取姓名,那就是:person.getName()


3. 以数组或者集合形式收集数据

和第一种方式其实是差不多的,比如说一个多选框,多个多选框的name属性名要一致,

然后Action收集的时候建立一个私有的集合类型的引用,比如:private List< String> list;

并且提供list的getter和setter方法

就可以收集多个数据了,并且装进一个集合里面。

这三种方式都是struts封装好的,按照这种方式就可以自动接收input传进来的值了,想了解其实现原理可以参考

struts2工作原理:https://blog.csdn.net/MacWx/article/details/93845478

目录
相关文章
|
5月前
|
NoSQL API Redis
数据对象的底层实现方式你都了解吗?
上一小节我们提到的五种数据类型其实就是 Redis 的数据对象,我们先来看看数据对象的类型:Redis 的 key 都是 string 类型的,以上各类型说的其实都是 value 的类型,以下是对象的几个优点:
50 0
数据对象的底层实现方式你都了解吗?
|
7天前
|
前端开发 JavaScript
前端基础(十六)_数组对象
本文详细介绍了JavaScript中数组对象的创建和操作方法,包括数组的增删改查、排序、去重、迭代等常用操作。
11 0
|
4月前
|
IDE Java 编译器
深入解析JAVA注解:元数据如何改变编程世界
【6月更文挑战第29天】Java注解,作为元数据机制,为代码增添上下文信息,改变编程方式。注解标记在类、方法等上,不直接影响执行,但为编译器等提供额外信息。分为元注解、编译时和运行时注解,用于元数据提供、代码简化、提高可读性及自动化。示例展示了定义`@Loggable`注解来标记日志记录方法。注解广泛应用于依赖注入、ORM、Web服务等,提升效率和灵活性,是现代Java开发的关键。未来其应用将更广泛。
69 3
|
4月前
|
机器学习/深度学习 安全 关系型数据库
Excel VBA的分层对象集合及外部对象库
基于对象的Excel VBA的分层对象集合及外部对象库
|
4月前
|
Java
JavaSE——面向对象基础(3/4)-封装、实体JavaBean(什么是封装、封装的设计规范、什么是实体类、实体类的应用场景)
JavaSE——面向对象基础(3/4)-封装、实体JavaBean(什么是封装、封装的设计规范、什么是实体类、实体类的应用场景)
34 6
|
5月前
|
设计模式 XML SQL
C++建造者模式解析:构建复杂对象的优雅方式
C++建造者模式解析:构建复杂对象的优雅方式
61 1
C++建造者模式解析:构建复杂对象的优雅方式
|
5月前
|
前端开发 JavaScript
怎样使用接口引用数据
怎样使用接口引用数据
|
存储 SQL Java
《JavaSE-第七章》之抽象的类-实例的对象-合理的封装
《JavaSE-第七章》之抽象的类-实例的对象-合理的封装
|
安全 前端开发 API
【反序列化利用链通用思路】OkayCMS&Smarty反序列化利用链详细分析
OkayCMS 是一个来自俄罗斯现成的在线商店平台,提供了在真正的演示在线商店中工作的机会,可以在其中执行任何操作。在管理面板中无限制地添加和删除产品、导入、更改语言和货币。
125 0
|
JavaScript 前端开发 索引
带你手写一个对象,深入理解可迭代对象是什么,与类数组有什么区别
带你手写一个对象,深入理解可迭代对象是什么,与类数组有什么区别
167 0
带你手写一个对象,深入理解可迭代对象是什么,与类数组有什么区别