strut2接收参数有三种方式(普通属性\领域对象\模型驱动),分别对三种进行一个总结:

一.普通属性

Jsp代码

<body>

<h1>普通属性</h1>

<form action="${pageContext.request.contextPath}/Demo1Action" method="post">

用户名:<input type="text" name="name"  ><br>

年龄:<input type="text" name="age"  ><br>

入职日期:<input type="text" name="hireDate"  ><br>

<input type="submit" value="提交"  ><br>

</form>

</body>

Action代码

//使用Action获得表单提交参数

//1.在Action中准备与参数键相同的属性,并提供相应的set方法,参数值会自动封装到属性中.

//2.封装参数还会帮我们自动类型转换. (8大基本数据类型|指定格式的Date类型)

public class Demo7Action extends ActionSupport {

private static final long serialVersionUID = 1L;

private String name;

private Integer age;

private Date hireDate;

@Override

public String execute() throws Exception {

System.out.println("name:"+name+",age:"+age+",hireDate:"+hireDate);

return SUCCESS;

}

public void setName(String name) {

this.name = name;

}

public void setAge(Integer age) {

this.age = age;

}

public void setHireDate(Date hireDate) {

this.hireDate = hireDate;

}

}

二.领域对象

Jsp代码

<body>

<h1>领域对象</h1>

<form action="${pageContext.request.contextPath}/Demo8Action" method="post">

用户名:<input type="text" name="user.name"  ><br>

年龄:<input type="text" name="user.age"  ><br>

入职日期:<input type="text" name="user.hireDate"  ><br>

<input type="submit" value="提交"  ><br>

</form>

</body>

Action代码

//使用Action获得表单提交参数

//1 在action中准备对象属性.并提供对象的set/get方法

//2 表单提交的键格式:对象属性名.属性名

public class Demo8Action extends ActionSupport {

private static final long serialVersionUID = 1L;

private User user;

@Override

public String execute() throws Exception {

System.out.println(user);

return SUCCESS;

}

public void setUser(User user) {

this.user = user;

}

public User getUser() {

return user;

}

}

三.模型驱动

Jsp代码

<body>

<h1>模型驱动</h1>

<form action="${pageContext.request.contextPath}/Demo9Action" method="post">

用户名:<input type="text" name="name"  ><br>

年龄:<input type="text" name="age"  ><br>

入职日期:<input type="text" name="hireDate"  ><br>

<input type="submit" value="提交"  ><br>

</form>

</body>

Action代码

//使用Action获得表单提交参数

//1 action实现ModelDriven接口.在实现方法中返回封装参数的User对象

//2 表单提交参数时,直接写对象中属性名即可.

public class Demo9Action extends ActionSupport implements ModelDriven<User> {

private static final long serialVersionUID = 1L;

private User user = new User();

public User getModel() {

return user;

}

@Override

public String execute() throws Exception {

System.out.println(user);

return SUCCESS;

}

}

复杂类型接收

Jsp代码

<body>

<h1>复杂类型接收</h1>

<form action="${pageContext.request.contextPath}/Demo10Action" method="post">

数组:<input type="text" name="arr"  ><br>

数组:<input type="text" name="arr"  ><br>

数组:<input type="text" name="arr"  ><br>

List:<input type="text" name="list"  ><br>

List:<input type="text" name="list"  ><br>

List:<input type="text" name="list"  ><br>

List:<input type="text" name="list[6]"  ><br>

Map:<input type="text" name="map['name']"  ><br>

Map:<input type="text" name="map['age']"  ><br>

Map:<input type="text" name="map['hehe']"  ><br>

<input type="submit" value="提交"  ><br>

</form>

</body>

Action代码

//演示使用Action获得表单提交参数 => 复杂类型接收

public class Demo10Action extends ActionSupport  {

private static final long serialVersionUID = 1L;

private String[] arr ;

private List list;

private Map map;

@Override

public String execute() throws Exception {

System.out.println(Arrays.toString(arr));

System.out.println(list);

System.out.println(map);

return SUCCESS;

}

public void setArr(String[] arr) {

this.arr = arr;

}

public void setList(List list) {

this.list = list;

}

public void setMap(Map map) {

this.map = map;

}

}

strut2接收参数的三种方式的更多相关文章

  1. ssh框架总结之action接收参数的三种方式

    页面将参数传递给action的三种方式 一是通过属性传值: 将页面和action的的属性值保持一致,在action上写上该属性的set和get方法,这样在页面提交参数的时候,action就会调用set ...

  2. ASP.NET MVC post请求接收参数的三种方式

    1.在控制器中建立一个PostDemo方法,建立视图创建一个表单 <h2>PostDemo</h2> name的值:@ViewBag.name <br /> nam ...

  3. 命令行运行Python脚本时传入参数的三种方式

    原文链接:命令行运行Python脚本时传入参数的三种方式(原文的几处错误在此已纠正) 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. pyth ...

  4. SpringBoot Controller接收参数的几种方式盘点

    本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:SpringBoot Controller接收参数的几种方式盘点: SpringBoot Controller接收参数的几种常用方式盘点 ...

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

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

  6. PHP命令行脚本接收传入参数的三种方式

    通常PHP都做http方式请求了,可以使用GET or POST方式接收参数,有些时候需要在shell命令下把PHP当作脚本执行,比如定时任务.这就涉及到在shell命令下如何给php传参的问题,通常 ...

  7. spring mvc从前台往后台传递参数的三种方式

     jsp页面: 第一种:使用控制器方法形参的方式(常用) 第二种:使用模型传参的方式(如果前台往后台传递的参数非常多,如果还使用形参的方式传递,非常复杂.我们可以使用模型传参的方式,把多 个请求的参数 ...

  8. 前端ajax异步传值以及后端接收参数的几种方式

    原文参考 异步传值 前台往后台传值呢,有很多种方式,大家听我细细道来. 第一种呢,也是最简单的一种,通过get提交方式,将参数在链接中以问号的形式进行传递. // 前台传值方法 // 触发该方法调用a ...

  9. spring mvc从后台往前台传参数的三种方式

    第一种:使用Model对象(常用) 第一步:使用model对象往前台传递数据 第二步:在jsp中接收从后台传递过来的参数 第二种:使用HttpServletRequest对象 第一步:使用HttpSe ...

随机推荐

  1. geotrellis使用(三十八)COG 写入和读取

    前言 上一篇中简单介绍了 COG 的概念和 Geotrellis 中引入 COG 的原因及简单的原理,本文为大家介绍如何在 Geotrellis 中使用 COG 来写入和读取 GeoTIFF数据. 一 ...

  2. MyBatis 框架系列之基础初始

    1.什么是 MyBatis MyBatis 本是 apache 的一个开源项目 iBatis,后改名为 MyBatis,它 是一个优秀的持久层框架,对 jdbc 的操作数据库的过程进行封装,使开发者只 ...

  3. CARVARS 圆形进度条

    先看下效果 这是两个不同进度的进度条,由于carvas用找的只是id所以下面想多个进度条必须要根据class来找到id,所以我封装了一个进度条的函数,下面的代码直接复制粘贴就可以了 <!DOCT ...

  4. Baidu音乐爬虫

    Baidu音乐歌曲爬虫: 1.分析Baidu音乐歌曲下载接口,组装参数 2.判断是否需要登录 a.使用cookie b.使用selenium 3.歌曲信息页面分析 4.数据表设计 歌曲类型表 歌曲表 ...

  5. Go/Python/Erlang编程语言对比分析及示例

    本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性,不过最主要的原因是这几个我比较熟悉. Go的很多语言特性借鉴 ...

  6. java处理大文本方案

    转载自:http://langgufu.iteye.com/blog/2107023 java处理大文件,一般用BufferedReader,BufferedInputStream这类带缓冲的Io类, ...

  7. Basic command and advice for memcached

    Storage Commands set Most common command. Store this data, possibly overwriting any existing data. N ...

  8. [HAOI 2006]受欢迎的牛

    Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认 ...

  9. [TJOI2017]可乐

    题目描述 加里敦星球的人们特别喜欢喝可乐.因而,他们的敌对星球研发出了一个可乐机器人,并且放在了加里敦星球的1号城市上.这个可乐机器人有三种行为: 停在原地,去下一个相邻的城市,自爆.它每一秒都会随机 ...

  10. UVALive - 3942:Remember the Word

    发现字典里面的单词数目多且长度短,可以用字典树保存 f[i]表示s[i~L]的分割方式,则有f[i]=∑f[i+len(word[j])]   其中word[j]为s[i~L]的前缀 注意字典树又叫前 ...