struts2_全局结果视图_参数封装

来源:互联网 发布:linux中的telnet命令 编辑:程序博客网 时间:2024/06/03 22:03
1.result标签:
name:逻辑视图的名称,对应着动作方法的返回值。默认值是success。 
type:结果类型,指的就是用什么方式转到定义的页面。默认是dispatcher。
type的常用取值:
dispatcher:(默认值)
使用请求转发,转向一个页面。
redirect:
使用重定向,转向一个页面。它可以用于重定向到另外一个动作。
redirectAction:
使用重定向,前往指定的动作。
配置全局结果视图:
<package name="myDefault" extends="struts-default" abstract="true">
<global-results>
<result name="login">/login.jsp</result>
</global-results>
</package>



2.使用ServletActionContext:
static HttpServletRequest getRequest():获取Web应用的HttpServletRequest对象。
static HttpServletResponse getResponse():获取Web应用的HttpServletResponse对象。
static ServletContext getServletContext():获取Web应用的ServletContext对象。
static PageContext getPageContext():获取Web应用的PageContext对象。


ServletRequestAware:实现该接口的Action可以直接访问Web应用的HttpServletRequest实例。
ServletResponseAware:实现该接口的Action可以直接访问Web应用的HttpServletResponse实例。
SessionAware:实现该接口的Action可以直接访问Web应用的HttpSession实例。
ServletContextAware:实现该接口的Action可以直接访问Web应用的ServletContext实例。




3.请求参数的封装:
a)没有实体类:请求参数的封装:
 * 属性驱动:
 * 没有独立的实体类(动作类和模型数据在一起)
 * 它要想封装成功,有如下要求:
 * 表单元素的name属性取值必须和动作类中的属性一致(提供get/set方法)
 *  
 * 细节:
 * struts2框架默认为我们解决了post请求的乱码问题。
 
b)有实体类:请求参数的封装:
 * 属性驱动:
 * 动作类和模型数据分开
 * 使用要求:
 *  首先动作类中需要提供模型的get/set方法
 *  模型中要提供私有成员变量的get/set方法
 *  并且这些get/set方法必须和表单的name属性取值能对应上。
 
c)模型驱动:在Struts2中,Action处理请求参数还有另外一种方式,叫做模型驱动(ModelDriven)。通过实现ModelDriven接口来接收请求参数。
此种封装方式必须按照要求编写代码,要求如下:
1、动作类必须实现ModelDriven接口
2、动作类中需要定义一个模型,并且必须实例化。
3、动作类提供ModelDriven接口中抽象方法的实现,返回模型对象。
注意:使用模型驱动时,get/set方法不是必须的。
动作类:


  封装请求参数的第三种情况:
  模型驱动
 
d)属性驱动封装集合数据,对于list和map,新建一个集合进行初始化,提供set/get方法.
原创粉丝点击