1、通过属性传参数(Attr)
UserAction.java

package com.bebig.struts2.user.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
    private String name;
    private int age;

    public String add() {
        System.out.println("name:"+name);
        System.out.println("age:"+age);
        return SUCCESS;
    }

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

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

调用方法:

<a href="user/userAdd.action?name=Don&age=26">添加用户</a>

2、通过域模型传参数(Domain Model)
UserAction.java

package com.bebig.struts2.user.action;

import com.bebig.struts2.user.dto.UserDTO;
import com.bebig.struts2.user.model.User;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
    // 通过域模型传参数
    private User user;

    // 通过数据传输对象传参数
    // private UserDTO userDTO;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String add() {
        System.out.println("name:" + user.getName());
        System.out.println("age:" + user.getAge());
        // System.out.println("name:"+userDTO.getName());
        // System.out.println("age:"+userDTO.getAge());
        return SUCCESS;
    }

    // public void setUserDTO(UserDTO userDTO) {
    // this.userDTO = userDTO;
    // }
    //
    // public UserDTO getUserDTO() {
    // return userDTO;
    // }
}

User.java

package com.bebig.struts2.user.model;

public class User {
    private String name;
    private int age;

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

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

UserDTO.java

package com.bebig.struts2.user.dto;
//数据传输对象
public class UserDTO {
    private String name;
    private String password;
    private String comfirmPassword;

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getComfirmPassword() {
        return comfirmPassword;
    }

    public void setComfirmPassword(String comfirmPassword) {
        this.comfirmPassword = comfirmPassword;
    }

    private int age;

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

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

调用方法:

<a href="user/userAdd.action?user.name=Don&user.age=26">添加用户</a>

3、通过模型驱动传参数(Model Driven)
UserAction.java

package com.bebig.struts2.user.action;

import com.bebig.struts2.user.model.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class UserAction extends ActionSupport implements ModelDriven<User> {
    private User user = new User();


    public String add() {
        System.out.println("name:"+user.getName());
        System.out.println("age:"+user.getAge());
        return SUCCESS;
    }
    @Override
    public User getModel()
    {
        return user;
    }

}

User.java
(源代码同上)
调用方法:

<p>使用ModelDriven传参数</p>
<a href="user/userAdd.action?name=Don&age=26">添加用户</a>

Struts2_三种传参数方法的更多相关文章

  1. jquery mobile changepage的三种传参方法介绍

    本来觉得changePage 那么多option,传几个参数应该没问题结果翻遍国内外网站,基本方法只有三种 1,显性传参,就是利用url这个地址把参数带上,然后到changepage后的新页面,用函数 ...

  2. 三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别

    关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个 ...

  3. Liunx 环境下vsftpd的三种实现方法(超详细参数)

    以下文章介绍Liunx 环境下vsftpd的三种实现方法 ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本.假 ...

  4. [五]java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用

    reduce-归约 看下词典翻译: 好的命名是自解释的 reduce的方法取得就是其中归纳的含义 java8 流相关的操作中,我们把它理解 "累加器",之所以加引号是因为他并不仅仅 ...

  5. 【转】三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别

    关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个 ...

  6. LayoutInflater.inflate()方法两个参数和三个参数

    转载请标明出处:https://www.cnblogs.com/tangZH/p/7074853.html  很多人都用过LayoutInflater(布局填充器) 对于我来说通常使用下面两种:Lay ...

  7. C++中三种传递参数方法的效率分析

    众所周知,在C++中有三种参数传递的方式: 按值传递(pass by value) #include <iostream> using namespace std; void swap(i ...

  8. setInterval()、clearInterval()、setTimeout()和clearTimeout() js计数器方法(还有第三个参数)

    用法是会用,但是之前一直以为接函数的 var a = setInterval(function(){},1000) 比如a是函数名,最近才发现它是一个ID, var intervalID = wind ...

  9. C++学习3--编程基础(vector、string、三种传参)

    知识点学习 Vector容器 vector是C++标准程序库中的一个类,其定义于头文件中,与其他STL组件一样,ventor属于STD名称空间: ventor是C++标准程序库里最基本的容器,设计之初 ...

随机推荐

  1. android 加载网络图片

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  2. JavaACOFramework的各个类介绍(part1 : Ant类)

    public abstract class Ant extends Observable implements Runnable { public static int ANT_ID = 1; // ...

  3. Mifare系列7-安全性(转)

    文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38087245 飞利浦的MIFARE卡 由于它的高安全性在市场上得到广泛应用,比如 ...

  4. Python notes

    1. range()函数的使用: a = range(n) # a = range(0,n) b = range(m,n) # b = range(m,n) alist = list(a) # ali ...

  5. CentOS 6.5 yum安装配置lnmp服务器(Nginx+PHP+MySQL)

    以下全部转载于  http://blog.csdn.net/lane_l/article/details/20235909 本人于今晚按照该文章使用centos 6.7 64bit安装成功,做个备份, ...

  6. jxl读数据库数据生成xls 并下载

    1.所需jar jxl-2.6.10.jar jxls-core-1.0-RC-3.jar jxls-reader-1.0-RC-3.jar 2. excel修改行宽度封装 SheetColumn.j ...

  7. jQuery 遍历方法

    http://www.runoob.com/jquery/jquery-ref-traversing.html

  8. Mac环境brew安装

    curl -L https://get.rvm.io | bash -s stable //RVM安装 source ~/.rvm/scripts/rvm rvm -v //版本检测 rvm list ...

  9. Python_Day4_函数

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 定义: 函数是指将一组语句的集合通过一个名字( ...

  10. django表单

    一.主要内容 1.服务端获取HttpRequest信息        1)url相关信息        2)HttpRequest.META中包含的键值对        3)HttpRequest中用 ...