Struts2参数接收的三种方式

一、属性驱动

<1>.在action类中定义属性,生成get,set方法。

<2>.在访问的地方传入相应的属性名和值,struts2自动接收。

action类:

package cn.hd.param;

import com.opensymphony.xwork2.ActionSupport;

public class AttrAction extends ActionSupport {

    private String name;

    private String psd;

    @Override

    public String execute() throws Exception {

        return super.execute();
    }
    public String login(){

        System.out.println(name);

        System.out.println(psd);

        return NONE;
    }

    public String getName() {
        return name;
    }

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

    public String getPsd() {
        return psd;
    }

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

struts01.xml:

<struts>

    <package name="param" namespace="/" extends="struts-default">

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

="login">

        </action>

    </package>

</struts>
Demo.html:
<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="jquery.min.js"></script>

</head>

<body>

<button id="btn">访问servletApi</button>

</body>

<script>

    $("#btn").click(function () {

        var param = {name:"小明",psd:"12345"};

        $.ajax({

            url:"http://localhost:8080/attrAction",

            data:param,

            success:function (res) {

               res = JSON.stringify(res);

                alert(res);

            },

            error:function (err) {

                alert(err);

            }
        })
    })
</script>

</html>

结果:


二、对象驱动

<1>.定义一个bean类,在action类中定义一个对象并生成get,set方法。

<2>.在请求的地方,请求参数键值有规定,必须按照规定的对象名,属性名进行传值。


action类:


package cn.hd.param;

import com.opensymphony.xwork2.ActionSupport;

public class ObjAction extends ActionSupport {

    private User user;

    @Override

    public String execute() throws Exception {

        System.out.println(user);

        return NONE;
    }

    public User getUser() {

        return user;
    }

    public void setUser(User user) {

        this.user = user;
    }
}


bean类:

package cn.hd.param;

public class User {

    private String name;

    private String psd;

    @Override

    public String toString() {

        return "User{" +

                "name='" + name + '\'' +

                ", psd='" + 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;

    }

}

struts01.xml:



Demo.html:



结果:



三、模板驱动


<1>.实现MOduleDriver<User>接口

<2>.重写方法

<3>.在action类中创建bean类对象。(new对象)

<4>.请求的地方与对象 属性传递相同。


action类:


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;
    }

}

bean类

package cn.hd.param;

public class User {

    private String name;

    private String psd;

    @Override

    public String toString() {

        return "User{" +

                "name='" + name + '\'' +

                ", psd='" + 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;

    }

}


struts01.xml:


<struts>

    <package name="param" namespace="/" extends="struts-default">

        <action name="moduleAction" class="cn.hd.param.ModuleAction" me

thod="execute">

        </action>

    </package>

</struts>
Demo.html:
<script>

    $("#btn").click(function () {

        var param = {name:"小白",psd:"12345"};

        $.ajax({

            url:"http://localhost:8080/moduleAction",

            data:param,

            success:function (res) {

               res = JSON.stringify(res);

                alert(res);

            },
            error:function (err) {

                alert(err);
            }
        })
    })

</script>
结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值