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. LAMP第一部分安装mysql -apache -php

    1. 安装mysqlcd /usr/local/src/ 免安装编译二进制的包wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-l ...

  2. OOP & DOM

    OOP & DOM let Dom = Dom || {}; Dom = { checkValType(val) { let typeString = Object.prototype.toS ...

  3. 【bzoj2132】圈地计划 网络流最小割

    题目描述 最近房地产商GDOI(Group of Dumbbells Or Idiots)从NOI(Nuts Old Idiots)手中得到了一块开发土地.据了解,这块土地是一块矩形的区域,可以纵横划 ...

  4. FreeBSD利用 ports 來安裝軟體

    FreeBSD利用 ports 來安裝軟體   利用 ports 來安裝軟體 FreeBSD 的 ports 就是別人已經編譯過,安裝測試沒問題了,他們將軟體編譯時所需的組態設定.編譯程序及安裝程序, ...

  5. windows下Call to undefined function curl_init() error问题

    本地项目中使用到curl_init()时出现Call to undefined function curl_init()的错误,去掉php.ini中的extension=php_curl.dll前的分 ...

  6. Codeforces Round #241 (Div. 2) B dp

    B. Art Union time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  7. windows server 2008 密码破解

    个人是不太喜欢windows 系统的,但有时候没办法  业务已经用在Windows系统上面,今天碰到管理员密码还忘记了的情况,在此记录下 破解密码的过程 1.下载小白菜装机版u盘制作PE启动,详情参考 ...

  8. 远程映射错误 “发生系统错误 1312 指定的登录会话不存在。可能已被终止 IIS 访问 远程共享目录”

    最近和其他公司做接口,需要将数据上传给对方. 我们发送程序部署在前置机上,文件在内网数据中.需要映射到文件服务器后上传数据.本机vs开发是可以映射成功,但是部署到远程的IIS中,就不能成功. 报错:  ...

  9. Codeforces 920D Tanks

    题目链接 题意 有 \(n\) 个容积无限的水缸,初始时水量为\(a_1,a_2,...,a_n\),有一把容积为\(k\)的勺子,可以从一个水缸中舀水倒入另一个水缸中.问能否给出操作序列,使得最终某 ...

  10. Google 最新的 Fuchsia OS【科技讯息摘要】

    转自:http://www.cnblogs.com/pied/p/5771782.html 就是看到篇报道,有点好奇,就去FQ挖了点东西回来. 我似乎已开始就抓到了重点,没错,就是 LK . LK 是 ...