Struts2基础(2)

Struts2基础
1. Struts2结果页面配置
(1)全局结果页面
如果多个Action的方法返回值相同,结果页面也相同,可以使用全局结果页面进行配置
<package>
<global-results>
<result name="success">/success.jsp</result>
</global-results>
</package>

(2)局部结果页面
如果既配置了全局结果页面,也配置了局部结果页面,则以局部结果页面我准
(3)Result标签中的Type属性
表示如何到路径中去
(a)针对到页面中的配置:
(a)默认值dispatcher,做转发操作
(b)redirect,做重定向操作
(b)针对到其他Action中的配置:
(a)chain:转发到Action。一般不用,有缓存问题
(b)redirectAction:重定向到Action

2. 在Action中获取表单提交数据
(1)使用ActionContext类获取
Map<String,Object> getParameters()
创建ActionContext对象:static ActionContext getContext()
(2)使用ServletActionContext获取
静态方法:
static HttpServletRequest getRequest()
static HttpServletResponse getResponse()
static ServletContext getServletContext()
static PageContext getPageContext()
(3)使用接口注入方式获取
很少使用
(4)在Action中操作域对象
(1)域对象主要有:request、session、servletContext
(2)代码:
(1)request
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("req","reqValue");
(2)session
HttpSession session = request.getSession();
session.setAttribute("session","sessionValue");
(3)ServletContext
ServletContext context = ServletActionContext.getServletContext();
context.setAttribute("context","contextValue");

3. Struts2中提供的表单数据获取方式
(1)属性封装
直接把表单提交的属性封装到Action的属性里,但是不能直接把数据封装到实体类对象中
(a)在Action成员变量位置定义变量
变量名和表单input的name属性值相同
(b)生成变量的set、get方法
(2)模型驱动封装(√)
可以直接将数据封装到实体类对象中
(a)Action实现ModelDriven接口
(b)实现接口中的getModel方法
把创建对象返回
(c)在Action里创建实体类对象
注意:
不能同时使用两种方式进行封装
(3)表达式封装
可以将数据封装到实体类对象中
(a)在Action中声明实体类
(b)生成实体类的set、get方法
(c)在表单Input的name的属性值里写表达式形式
<input type="type" name="user.username">

4. Struts2中表达式封装和模型驱动比较
(1)相同点:
都可以把数据封装到实体类对象里
(2)不同点:
(a)使用模型驱动只能把数据封装到一个实体类对象里
在一个Action里面,不能使用模型驱动把数据封装到不同的实体类对象里
(b)使用表达式封装可以把数据封装到不同的实体类对象里

5. Struts2中获取数据封装到集合中
(1)封装到List集合中
(a)在Action中声明List
(b)在Action中生成get、set方法
(c)在表单Input中写表达式
<input type="text" name="list[0].username">
(2)封装到Map集合中
(a)在Action中声明Map
(b)在Action中生成get、set方法
(c)在表单Input中写表达式
<input type="text" name="map['key'].username">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值