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. in成员资格符

    #in成员资格符 name='小树' '小'in name# 返回True '大树'in name#返回False

  2. jq跨域获取json

    <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" ...

  3. [LeetCode] Sentence Similarity II 句子相似度之二

    Given two sentences words1, words2 (each represented as an array of strings), and a list of similar ...

  4. react源代码重点难点分析

    网上已经有不少react源码分析文档,但都是分析主流程和主要功能函数,没有一个是从reactDOM.render()入口开始分析源码把流程走通尤其是把复杂重要的细节环节走通直到把组件template编 ...

  5. Python默认版本切换

    Mac上自带python2.7 版本,但是我又下了一个3.7版本(下载的版本默认安装在 /Library/Frameworks/Python.framework/Versions/3.7/bin/py ...

  6. PyQT5 helloworld教程(转载)

    转载节选自该博客地址:http://blog.csdn.net/u013401853/article/details/54581512,博主的步骤写的很详细,感谢! QT Creator安装 因为我们 ...

  7. [NOI2015]品酒大会

    题目描述 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战 两个环节,分别向优胜者颁发“首席品酒家”和“首席猎手”两个奖项,吸引了众多品酒师参加. 在大会的晚餐上,调酒师 Rainb ...

  8. [SDOI2011]计算器

    Description 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给 ...

  9. 洛谷mNOIP模拟赛Day1-分组

    传送门 首先是贪心的思路 从后向前选,能多选就多选, 理由:数字越少肯定越优,同时间隔尽量向前推,字典序尽量小 对于K==1,枚举1~512直接判断 对于K==2,需要用镜像并查集,来刻画" ...

  10. [BZOJ]2458: [BeiJing2011]最小三角形

    题目大意:给出平面上n个点,求最小的由这些点组成的三角形的周长.(N<=200,000) 思路:点按x坐标排序后分治,每次取出与排在中间的点的横坐标相差不超当前答案一半的点,按y坐标排序后再暴力 ...