Struts2中Action接收參数的方法主要有下面三种:

1.使用Action的属性接收參数:(通过属性驱动式)

    a.定义:在Action类中定义属性,创建get和set方法。

    b.接收:通过属性接收參数,如:userName。

    c.发送:使用属性名传递參数,如:user1!add?userName=Magci;

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接收參数:(模型驱动方式,必需要实现ModelDriven<T>接口。对于要传入多个model另外一种方式不方便)

    a.定义:Action实现ModelDriven泛型接口,定义Model类的对象(必须new)。通过getModel方法返回该对象;

    b.接收:通过对象的属性接收參数,如:user.getUserName()。

    c.发送:直接使用属性名传递參数,如:user2!add?

userName=MGC

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.使用DomainModel接收參数:(第三种领域模型方式能够全然不实现ModelDriven<T>,也可使用多个model对象的属性。)

    a.定义:定义Model类,在Action中定义Model类的对象(不须要new),创建该对象的get和set方法。

    b.接收:通过对象的属性接收參数,如:user.getUserName();

    c.发送:使用对象的属性传递參数。如:user2!add?user.userName=MGC;

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的属性接收参数

    题记:写这篇博客要主是加深自己对参数对象的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. Action中三种传递并接受参数: 1.  在Action添加成员属性接受参数 例如请求的 ...

  2. struts2中action手动获取參数

    struts2中action手动获取Session,jsp页面參数 1. ActionContext 在Struts2开发中,除了将请求參数自己主动设置到Action的字段中,我们往往也须要在Acti ...

  3. Struts2中Action接收参数的方法

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt112 Struts2中Action接收参数的方法主要有以下三种: 1.使用A ...

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

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

  5. Struts2中Action接收参数

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

  6. 自己定义struts2中action类型转换器

    DateAction.java中代码例如以下: package com.itheima.action; import java.util.Date; public class DateAction { ...

  7. Struts中Action三种接收参数的方式?

    前言: 前面已经有一篇随笔介绍了Struts2的大概原理.本文就Struts2中Action与jsp页面进行数据对接时介绍几种常见方法! 值栈ValueStack 3个Action Action1 p ...

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

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

  9. 关于struts2中action请求会执行两次的问题

    关于struts2中action请求会执行两次的问题     在struts2中发现,调用action中的方法,方法会被执行两次,后来发现调用的方法是get开头的,把它改为其他名称开头的后,就不会执行 ...

随机推荐

  1. mapserv和mapserv.exe的区别

    哎,困扰了我这么久才知道一个是在unix环境下的,一个是在windows环境下的

  2. [国家集训队][bzoj2038] 小Z的袜子 [莫队]

    题面: 传送门 思路: 又是一道标准的莫队处理题目,但是这道题需要一点小改动:求个数变成了求概率 我们思考:每次某种颜色从i个增加到i+1个,符合要求的情况多了多少? 原来的总情况数是i*(i-1)/ ...

  3. react当中子组件改变父组件的状态

    子组件直接改变父组件传入的props值是不被允许的, 当需要在子组件当中改变父组件的某一个状态, 父组件传入一个改变状态的函数,然后在子组件当中调用函数即可

  4. callee返回正被执行的Function对象

    arguments.length是实参长度, arguments.callee.length是形参长度. function fn(a, b, c, d) { console.log(arguments ...

  5. FCKEDITOR配置说明

    原文发布时间为:2009-10-12 -- 来源于本人的百度文章 [由搬家工具导入] fckeditor config.js配置2009-02-13 14:36 FCKConfig.CustomCon ...

  6. JS - caller,callee,call,apply [transfer] aA ==> apply uses an array [] as the second argument. call uses different argument.

    在提到上述的概念之前,首先想说说javascript中函数的隐含参数:arguments Arguments : 该对象代表正在执行的函数和调用它的函数的参数. [function.]argument ...

  7. requireJs杂项

    如果设置了baseUrl,那么baseUrl目录下的模块可以被加载,那么被加载之后的模块Id是什么?文件名吗?     入口函数的写法?是不是要执行,后面加()   中文网中指的优化工具是什么?   ...

  8. 实现多线程sokect

    上一篇文章说到怎样写一个最简单的Java Socket通信,但是在上一篇文章中的例子有一个问题就是Server只能接受一个Client请求,当第一个Client连接后就占据了这个位置,后 续Clien ...

  9. linux mmap 详解【转】

    转自:http://blog.chinaunix.net/uid-20321537-id-3483405.html 一.前言mmap的具体实现以前在学习内核时学习过,但是对于其中的很多函数是一知半解的 ...

  10. 用Python和Pygame写游戏-从入门到精通(py2exe篇)

    这次不是直接讲解下去,而是谈一下如何把我们写的游戏做成一个exe文件,这样一来,用户不需要安装python就可以玩了.扫清了游戏发布一大障碍啊! perl,python,java等编程语言,非常好用, ...