Struts2中Action接收参数的方法

时间:2023-02-24 21:28:56

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt112

Struts2中Action接收参数的方法主要有以下三种: 
1.使用Action的属性接收参数: 
    a.定义:在Action类中定义属性,创建get和set方法; 
    b.接收:通过属性接收参数,如:userName; 
    c.发送:使用属性名传递参数,如:user1!add?userName=Magci; 
2.使用DomainModel接收参数: 
    a.定义:定义Model类,在Action中定义Model类的对象(不需要new),创建该对象的get和set方法; 
    b.接收:通过对象的属性接收参数,如:user.getUserName(); 
    c.发送:使用对象的属性传递参数,如:user2!add?user.userName=MGC; 
3.使用ModelDriven接收参数: 
    a.定义:Action实现ModelDriven泛型接口,定义Model类的对象(必须new),通过getModel方法返回该对象; 
    b.接收:通过对象的属性接收参数,如:user.getUserName(); 
    c.发送:直接使用属性名传递参数,如:user2!add?userName=MGC 

struts2 Action获取表单传值 
1.通过属性驱动式 
JSP: 
<form action="sys/login.action" method="post"> 
  <input type="text" name="username"> 
  <input type="submit" value="submit"> 
</form> 

Action:直接通过get、set方法获取。 

public class sysAction extends ActionSupport{ 
private String username; 

public String login() throws Exception { 
  System.out.println(username); 
  return SUCCESS; 


public String getUsername() { 
  return username; 

public void setUsername(String username) { 
  this.username= username; 



2.模型驱动方式,必须要实现ModelDriven<T>接口。对于要传入多个model第二种方式不方便 
JSP: 
<form action="sys/login.action" method="post"> 
  <input type="text" name="username"> 
  <input type="submit" value="submit"> 
</form> 

Action:必须实现getModel() 方法 

public class sysAction extends ActionSupport implements ModelDriven<User>{ 
private User user; 

public String login() throws Exception { 
  System.out.println(getModel().getUsername()); 
  return SUCCESS; 


public User getModel() { 
  if (null == user) { 
   return user = new User(); 
  } 
  return user; 



3.第三种方式可以完全不实现ModelDriven<T>,也可使用多个model对象的属性。 
JSP: 
<form action="sys/login.action" method="post"> 
  <input type="text" name="user.username"> 
  <input type="text" name="teacher.level"> 
  <input type="submit" value="submit"> 
</form> 

Action: 必须提供set方法 

public class sysAction extends ActionSupport{ 
private User user; 
private Teacher teacher; 

public String login() throws Exception { 
  System.out.println(user.getUsername()); 
  System.out.println(teacher.getLevel()); 
  return SUCCESS; 


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

public void setTeacher(Teacher teacher) { 
  this.teacher = teacher; 

}

Struts2中Action接收参数的方法的更多相关文章

  1. Struts2中Action接收参数的方法主要有以下三种:

    Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数(最原始的方式):     a.定义:在Action类中定义属性,创建get和set方法:     b.接 ...

  2. Struts2中Action接收参数

    Struts2中Action接收参数的方法主要有以下三种: Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数:     a.定义:在Action类中定义属 ...

  3. Struts2中Action接收参数的四种形式

    1.Struts2的Action接收参数的三种形式.      a. 使用Action的属性接收(直接在action中利用get方法来接收参数):                   login.js ...

  4. struts2属性Struts2中属性接收参数中文问题和简单数据验证

    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 一:如果表单提交数据中有中文时,尽量应用post方式. 需要在Struts. ...

  5. Struts2中action接收中文参数为乱码解决方法

    老实说,中文乱码问题是每个程序员会经常遇到的问题,而且也是一个很头疼的问题.网上很多关于解决中文乱码的帖子,看几个之后你会发现大都是一样的.但是我们照着做,却还是无法解决乱码问题.我也是看了好多帖子, ...

  6. Struts2中Action自己主动接收參数

    Struts2中Action接收參数的方法主要有下面三种: 1.使用Action的属性接收參数:(通过属性驱动式)     a.定义:在Action类中定义属性,创建get和set方法.     b. ...

  7. Struts2学习---基本配置,action,动态方法调用,action接收参数

    首先我们先来直接配置,然后再来讲原理: 第一步:jar包的引入: 我们可以到struts2的官网上下载: http://struts.apache.org/download.cgi#struts251 ...

  8. struts2 Action 接收参数的三种方法

    刚学Struts2 时 大家可能遇到过很多问题,这里我讲一下Action 接收参数的三种方法,我曾经在这上面摔过一回.所以要警醒一下自己..... 第一种:Action里声明属性,样例:account ...

  9. Struts2中Action取得表单数据的几种方法

    Struts2中Action取得表单数据的几种方法   Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form act ...

随机推荐

  1. ARM地址映射

    转自:http://blog.csdn.net/a3163504123/article/details/10958229 重映射之后,一般原来的地址依然有效.也就是说,可能两个地址,对应一个存储单元. ...

  2. ASP&period;NET Web&period;Config 读资料 &lpar;学习笔记&rpar;

    refer : http://www.cnblogs.com/fish-li/archive/2011/12/18/2292037.html 上面这篇写很好了. 在做项目时,我们经常会遇到一些资料,我 ...

  3. Swift基础语法

    简介 特点 (1)优于OC,快速,安全 (2)取消了预编译指令包括宏定义(OC用的太多了) (3)取消了OC指针和不安全访问的使用(看不到星星了) (4)舍弃 Objective-C 早期应用 Sma ...

  4. 【开发技术】 Air display的介绍与使用

    原理是,通过ipad与电脑连接的同一网络,然后把你的ipad变成电脑的屏幕 安装方法:1, 2, 3,

  5. 基于哈夫曼编码的文件压缩(c&plus;&plus;版)

    本博客由Rcchio原创 我了解到很多压缩文件的程序是基于哈夫曼编码来实现的,所以产生了自己用哈夫曼编码写一个压缩软件的想法,经过查阅资料和自己的思考,我用c++语言写出了该程序,并通过这篇文章来记录 ...

  6. Eclipse上传新项目到GitLab

    E&T: Eclipse; GitLab; GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(https://github.com/gitlabhq/gitlabhq  ...

  7. linux查看指定时间段的日志

    不需要tail命令,直接 grep '2018-04-22 12:3[2-9]' tesl.log: 这就是查询指定文件的2018-04-22 12点32分到39分的日志

  8. VS Sln图标空白修复办法

    环境:Win10,VS2017,曾经安装并卸载过VS2015之前安装了两个版本的VisualStudio,卸载一个后,就出现了图标空白问题,重新设置默认打开程序也没有作用,经摸索解决办法如下.(1)在 ...

  9. SeaJS入门教程系列之完整示例(三)

    一个完整的例子上文说了那么多,知识点比较分散,所以最后我打算用一个完整的SeaJS例子把这些知识点串起来,方便朋友们归纳回顾.这个例子包含如下文件: 1.index.html——主页面.2.sea.j ...

  10. trunc&lpar;&rpar;用法和add&lowbar;months&lpar;&rpar;

    TRUNC函数用于对值进行截断. 用法有两种:TRUNC(NUMBER)表示截断数字,TRUNC(date)表示截断日期. (1)截断数字: 格式:TRUNC(n1,n2),n1表示被截断的数字,n2 ...