Struts2详解之参数接收(六)

参数接收的几种方法希望对大家有些帮助

    首先建一个bean类User,并设置get和set方法和toString方法

            

package cn.hd.param;

public class User {
    private String name;
    private String psd;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPsd() {
        return psd;
    }

    public void setPsd(String psd) {
        this.psd = psd;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", psd='" + psd + '\'' +
                '}';
    }
}

一 属性驱动

为什么可以在方法中设置变量

原因:struts2是线程安全的

Action类中直接定义属性姓名,然后设置get set方法

在访问的地方传入对应的属性名和值 struts2自动接收

        

package cn.hd.param;
import com.opensymphony.xwork2.ActionSupport;
public class AttrAction extends ActionSupport {
    private String name;
    private String psd;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPsd() {
        return psd;
    }
    public void setPsd(String psd) {
        this.psd = psd;
    }
    @Override
    public String execute() throws Exception {
        return super.execute();
    }
    public String login(){
        System.out.println(name);
        System.out.println(psd);
        return NONE;
    }
}

Struts.xml

<action name="attrAction" class="cn.hd.param.AttrAction" method="login" >
</action>

二 对象驱动

首先定义一个bean类,然后再Action里定义一个对象,并且加上get set 方法

并且在请求的地方,请求参数键值有规定,必须按照规定的对象名.属性名的方式传递

package cn.hd.param;
import com.opensymphony.xwork2.ActionSupport;
public class ObjAction extends ActionSupport {
    private User user;

    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    @Override
    public String execute() throws Exception {
        System.out.println(user);
        return NONE;
    }
}

 

Struts.xml
<action name="objAction" class="cn.hd.param.ObjAction">
</action>

三 模板驱动

实现ModuleDriver<User>接口

重写方法

Action中创建一个user对象,并且要new对象

请求的地方还是按照对象属性传递

package cn.hd.param;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class ModuleAction extends ActionSupport implements ModelDriven<User> {
    private User user = new User();
    @Override
    public String execute() throws Exception {
        System.out.println(user);
        return NONE;
    }
    @Override
    public User getModel() {
        return user;
    }
}

 

Struts.xml

<action name="moduleAction" class="cn.hd.param.ModuleAction" method="execute">
</action>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

double_lifly

点喜欢就是最好的打赏!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值