Struts2中Action自动接收参数

标签: struts2 action | 发表时间:2014-04-23 14:18 | 作者:wzg775192833
分享到:
出处:http://blog.csdn.net

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

作者:wzg775192833 发表于2014-4-23 14:18:08 原文链接
阅读:86 评论:0 查看评论

相关 [struts2 action] 推荐:

Struts2中Action自动接收参数

- - CSDN博客架构设计推荐文章
Struts2中Action接收参数的方法主要有以下三种:. 1.使用Action的属性接收参数:(通过属性驱动式).     a.定义:在Action类中定义属性,创建get和set方法;.     b.接收:通过属性接收参数,如:userName;.     c.发送:使用属性名传递参数,如:user1!add?userName=Magci;.

Spring MVC 和 Struts2

- - CSDN博客架构设计推荐文章
Web层面的框架学习了三个Struts1和2,SpringMVC,那他们之间肯定存在一个优劣和适用的环境,Struts1和2的异同点我已经做过对比《 Struts1和Struts2》,这篇将对比下Struts2和SpringMVC的异同,下面数据基本来源于网络,本人是搜集整理所得,供大家参考. 一个项目使用什么样的技术,决定的因素很多,我所能想到的有:对系统的性能、开发的效率、团队学习的成本、业务场景等,下面尽量从这几个方面入手,来分析比较下他们之间存在的优劣.

struts2的标签tag

- - CSDN博客编程语言推荐文章
二、 常用的Struts 2.0的标志(Tag)介绍. 在上一篇文章《 为Struts 2.0做好准备》中,我过于详细地介绍了Struts 2.0开发环境和运行环境的配置,所以,本文很少涉及的以上两方面的细节. 如果,您看完《 为Struts 2.0做好准备》后,还有什么不明白,或者没法运行文中例子,请联系我.

Struts 2的Action讲解

- - CSDN博客编程语言推荐文章
三、Struts 2的Action讲解. 有Struts 1.x经验的朋友都知道Action是Struts的核心内容,当然Struts 2.0也不例外. 不过,Struts 1.x与Struts 2.0的Action模型很大的区别. 必须继承org.apache.struts.action.Action或者其子类.

Android Design in Action —— 编与集

- - 极客公园-GeekPark
曾经热爱 Metro UI, 对 Android Design 了解深入. 经营团队博客"锋客网".. [核心提示]又一篇 Android Design 的指南,教会你 Android Design in Action 的艺术,各位苦逼的 Android 工程师们快快拜读. 大家好, 这是久违了的 Android Design in Action 栏目.

Struts2常用标签总结

- - CSDN博客推荐文章
1.Struts2的作用 . Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性. Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求. Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用.

struts1,struts2,springMVC终极对比

- - CSDN博客Web前端推荐文章
         最近做项目用到了struts2,之前一直是用struts1和springMVC. 感觉到了struts2从很大程度上和这两个还是有很大区别的,所以今天搜集了些资料,给他们做一下对比.          Struts1官方已经停止更新,现在用的也比较少,这里主要讲一下struts2和struts1比较都有哪些不同和进步.

Struts2 标签库讲解

- - CSDN博客架构设计推荐文章
Struts2 标签库讲解. 转自:http://blog.163.com/hzd_love/blog/static/131999881201082111852520/. 要使用Struts2的标签,只需要在JSP页面添加如下一行定义即可:. struts2的标签共分为五大类:. 1)条件标签:用于执行基本的条件流转.

文章: 书摘和访谈:ActiveMQ in Action

- - InfoQ cn
《 ActiveMQ in Action》一书由Bruce Snyder、Dejan Bosanac、Rob Davies合著,内容涵盖开源消息中间件ActiveMQ的发展和使用. 本书的第一部分介绍了消息中间件ActiveMQ和Java消息服务(JMS). 对本书使用的例子进行了简单说明之后,第二部分介绍了标准ActiveMQ组件的配置,包括传输连接器、持久化的消息存储和各个层次的安全控制.

文章: 采访与书评:Spring Integration in Action

- - InfoQ cn
Mark Fisher,Jonas Partner,Marius Bogoevici以及Iwein Fuld合著的 《Spring Integration in Action》一书介绍了 Spring Integration框架,该框架基于 Spring编程模型提供了众所周知的 企业级集成模式(Enterprise Integration Pattern,EIP)的一种实现.