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. __dict__

    类有一个__dict__字典属性,保存了当前类的每一个成员,举例如下: >>> class A: def __init__(self,value): self.value=value ...

  2. Spring-cloud(五) 使用Ribbon进行Restful请求

    写在前面 本文由markdown格式写成,为本人第一次这么写,排版可能会有点乱,还望各位海涵. 主要写的是使用Ribbon进行Restful请求,测试各个方法的使用,代码冗余较高,比较适合初学者,介意 ...

  3. python 云打码 hhtp接口

    import http.client, mimetypes, urllib, json, time, requests ######################################## ...

  4. codeforces 651C Watchmen

    Watchmen are in a danger and Doctor Manhattan together with his friend Daniel Dreiberg should warn t ...

  5. Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined)

    运气好,分到的房里我最先开始Hack C题,Hack了12个,听说F题沙雕莫队但我不会,最后剩不到15分钟想出E题做法打了一波结果挂了,最后虽然上分了但总有点不甘心. 最后A掉ABCD Hack+12 ...

  6. [BZOJ]1018 堵塞的交通(SHOI2008)

    一道有点神的线段树. Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城 ...

  7. UVA 1146 Now or later

    The Terminal Radar Approach CONtrol (TRACON) controls aircraft approaching and departing when they a ...

  8. java continue与break区别

    在循环体中跳出循环语句有continue与break语句 continue:跳出本次循环,包括本次循环continue后面的语句, break:跳出循环体,就是说一遇到break循环就结束. 代码: ...

  9. 在Unix系统中,主存索引节点和辅存索引节点从内容上比较有什么不同,为什么要设置主存索引节点?

    主存索引节点和辅存索引节点的不同主要体现在:主存索引节点状态:设备号.索引节点号:引用计数. 主存索引节点状态——反映主存索引节点的使用情况.它指示出: 1.  索引节点是否被锁上了: 2.  是否有 ...

  10. tensorflow deepmath:基于深度学习的自动化数学定理证明

    Deepmath Deepmath项目旨在改进使用深度学习和其他机器学习技术的自动化定理证明. Deepmath是Google研究与几所大学之间的合作. 免责声明: 该存储库中的源代码不是Google ...