Struts2 的三种接受参数的方式

本文介绍了Struts2框架中三种不同的参数接收方法:通过getter和setter方法接收普通参数、直接接收对象及其部分属性值、使用领域驱动模式接收对象值。并通过示例详细解释了每种方法的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、通过普通参数的getter and setter方式接受参数。

比如前端页面有:<s:textfield name="title" cssClass="border3"  />

在接受参数的Action中就可以声明一个参数private  String title;比且生成它的get and set方法来获取页面传递进来的值。

2.直接接受对象的属性值。或者是对象的部分属性值。

@1 在页面就可以这样的写<s:textfield name ="user.name" />

Action那端就直接可以使用:private User user。生成User user 的get and set 方法

直接可以使用user.name 拿到页面传递进来的值。

@2 如果页面还要传递不是User对象的属性值,但是Action中又不想写很多的private XXXXX  xxxx;的生命

我们可以通过DTO的形式传递页面的值或者也称作是VO的数据传递对象(英文翻译应该是Data Transfer Object 吧)。

例如:

class User {

String name;

String password;

}

页面时一个注册页面,要验证两次输入的密码是不是一直。还要传递一个validatePassword;

并且你还想用标准的user.name;user.password是无法传递参数的。我们可以写这样一个modle只做数据的传递。称其为:

DTO,取名为UserDTO。

class UserDTO {

String name;

String password;

String validatePassword;

}

在Action中就可以这样的写:

private UserDTO userDTO;生成其get and set 方法。

通过userDTO.name;userDTO.password;userDTO.validatePassword来接收参数。

3.使用领域驱动模式接受对象的值

在页面传递参数的时候依然是使用对象“.”导航形式的发送参数,但是在Action这一端需要如下的实现

class UserAction extends ActionSupport implements ModelDriven<User>{

private User user = new User();

通过user.getName();user.getPassword();来接受参数。

}

 注意:User是自己new 出来的。ModelDriven是通过getModel() setName()、setPassword();这个方法来接受Model参数的。可以参见Struts2

 的源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值