Struts2 Action类的创建以及参数传递以及接收
一、Struts中Action得创建方式
1,直接创建一个简单的Action类

添加Struts.xml,配置转发方法返回转发的页面。

2,实现一个Action类

Strust.xml配置对应的Url转发映射。

3,继承一个ActionSupport类

struts.xml配置文件的内容如下:

二、Struts中Action获取Servlet中的API,并通过servlet的域对象进行存储值操作
1,通过ActionContext上下文对象来获取request域,session域,application域

struts.xml配置文件配置内容:

转发页面内容:

Action获取Servlet中的API,并通过servlet的域对象进行存储值操作
2,通过servletActionContext上下文对象来获取request域,session域,application域

strust.xml配置文件

转发页面

3,Action类通过实现ServletRequestAware, ServletContextAware上下文对象来获取request域,session域,application域

Struts.xml 配置文件如下:

jsp转发配置页面

三、Struts中Action中获取页面传递过来的参数的三种方式
1,通过Action类的属性来获取相应的参数值
package com.java.test.param.Action;
import java.util.Date;
public class ParamAction {
private String name;
private Integer age;
private Date birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String test() {
System.out.println("name:"+name);
System.out.println("age:"+age);
System.out.println("birthday:"+birthday);
return "test";
}
}
struts.xml配置页面

form.jsp

welcome.jsp

2,通过Action类的对象属性来获取相应的参数值
#user.java
package com.java.test.param.Action;
import java.util.Date;
public class User {
private String name;
private Integer age;
private Date birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
#Param1Action .java
package com.java.test.param.Action;
public class Param1Action {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String test() {
return "test";
}
}
strust.xml配置文件

form1.jsp

welcome1.jsp

3,通过实现ModelDriven类的来获取相应的参数值
#Param3.java
package com.java.test.param.Action;
import com.opensymphony.xwork2.ModelDriven;
public class Param3 implements ModelDriven{
private User user = new User();
@Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
public String test() {
return "test";
}
}
struts.xml

form2.jsp

welcome2.jsp

四、Struts中如何传递list,map参数
#Param4Action .java
package com.java.test.param.Action;
import java.util.List;
import java.util.Map;
public class Param4Action {
private List list;
private Map<String,String> map;
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public String test() {
return "test";
}
}

form3.jsp

welcome3.jsp

总结:1,创建Action有三种方式,每一种都有对应的好处,建议使用第二种或者第三种,这种方式能够继承或者实现父类,从而可以复用父类的一些东西。
2,获取servlet Api,建议使用第二种方式,和servlet的方式类似。但struts中不建议这样来获取参数或设置对象域。
3, Action类中接收参数的三种方式,第一种的话,很零散,操作数据库还得进行封装类,第二种方式,可以直接封装好类,这种方式可以,第三种,这种方式也可以,就是 每次只能实现一个bean类,从而只能获取一个bean。多个bean的话不太好解决。
最后一个就是传递list参数和map参数,list就是页面上得有多个对应的list,map必须指定对应的key,不然不知道是哪一个key需要存值。
Struts2 Action类的创建以及参数传递以及接收的更多相关文章
- JAVA框架Struts2 Action类
一.Action书写方式: 接口地址:https://struts.apache.org/maven/struts2-core/apidocs/index.html Action类就是一个POJO类. ...
- Struts2框架(3)---Action类的3种书写方式
Action类的3种书写方式 本文主要写有关写Action类的3种书写方式: (1)第一种 Action可以是POJO (简单模型对象) 不需要继承任何父类 也不需要实现任何接口 (2)实现Acti ...
- 在Action类中获得HttpServletResponse对象的四种方法
在struts1.xAction类的execute方法中,有四个参数,其中两个就是response和request.而在Struts2中,并没有任何参数,因此,就不能简单地从execute方法获得Ht ...
- struts2笔记02-action和Action类
1.action action表示一个struts2的请求! 2.Action类 能够处理struts2请求的类. (1)属性的名字需要与JavaBeans属性保持一致. 属性的类型可以是任 ...
- Struts2中的Action类(解耦方式,耦合方式)
一.解耦方式 特点:对web资源进行了封装,便于单元测试. 实现:ActionContext和接口方式 1.ActionContext 特点:Action执行的上下文对象.保存了执行Action所需要 ...
- struts2捕获action类异常
首先是STRUTS.XML的配置.重点在于配置文件: <!-- struts2捕获action类异常 --> <global-results> <resu ...
- Struts2 之 Action 类访问 WEB 资源
接着上次博客的内容我继续分享我所学到的知识,和自己在学习过程中所遇到问题以及解决方案.当然,如果读者发现任何问题均可以在下方评论告知我,先谢! 在 Action 中访问 WEB 资源 web 资源 所 ...
- Struts2框架(4)---Action类访问servlet
Action类访问servlet Action类有三种方式servlet: (1)间接的方式访问Servlet API ---使用ActionContext对象 (2) 实现接口,访问Action ...
- Struts2框架之Action类的访问
1. 通过<action>标签中的method属性,访问到Action中的具体的方法. * 传统的配置方式,配置更清晰更好理解!但是扩展需要修改配置文件等! * 具体的实例如下: * 页面 ...
随机推荐
- react 做的简易todolist
首先要有一定的react的基础,里面的一些不做解释(包括项目文件的用法及作用) ### 1. 先安装react的插件 npm install create-react-app -g ...
- 欧姆龙NX1P 输送马达功能块
一个简单的马达输送轨道功能块,需要的小伙伴可以参考下,个人能力有限,不足的地方还请包涵. 下载链接:https://pan.baidu.com/s/1V1gioE0boDpaUsR5cqQ5dg
- Redis HashMap 使用
散列类型相当于Java中的HashMap,他的值是一个字典,保存很多key,value对,每对key,value的值个键都是字符串类型,换句话说,散列类型不能嵌套其他数据类型.一个散列类型键最多可以包 ...
- 基于 Spring + Atomikos + Mybatis的多数据源配置(含有BaseDao,BaseService)
1.spring配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- Bandicam录制三大神器之一
链接: http://pan.baidu.com/s/1bnDIUOv 密码: etge
- 离线安装docker,并导入docker镜像
将docker离线安装包导入到系统中,解压并进入文件夹,使用下述命令进行安装: rpm -ivh *.rpm --nodeps --force 安装完成功使用,docker info 查看docker ...
- vue 强制刷新组件重新渲染
实现功能:使用富文本编辑器编写文章,然后把编写成功的文章用子组件显示. 问题描述:父组件给子组件传递数据,子组件第一次调用数据的时候页面渲染是正常的,当数据变化的时候,子组件的页面渲染就失效了. 问题 ...
- React学习,搭建项目,入门
react项目基于node.js.用npm包管理工具; 在cmd命令行中输入: npm install -g create-react-app 等待其安装,意思是全局安装create-react-ap ...
- 【k8s第三步】Kubernetes-Dashboard仪表盘【已修正错误】
⒈下载描述文件 wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta6/aio/deploy/recommen ...
- python学习-27 匿名函数
匿名函数 1. 语法: lanbda x:x+1 def a(x): return x+1 res = a(10) print(res) 运行结果: 11 Process finished wit ...