Struts2学习总结1

    xiaoxiao2021-03-25  98

    1.Struts2 Action类接收用户输入的三种方式

    1.1.域对象接收。在Action类中持有域的一个私有实例,并提供对应的setters和getters;在JSP页面使用“域实例.域属性名”的方式写input的name值。

    1.2.使用Action类实现ModelDriven<?>接口方式。Action类中提供一个域实例并进行初始化;在JSP页面直接使用域属性名写input的name值。

    1.3.采用属性接收的方式。直接在Action类中添加与JSP页面对应的实例 ,并提供setters和getters。

    2.Struts.xml配置

    2.1.result配置

    <result>

        <param name="dispatcher">/index.jsp</param>

    </result>

    result的类型有很多种,默认为dispatcher。result类型是在struts-default.xml中配置的,其中指定的处理result的类。

    2.2.方法名配置三种:

    a.method指定方法名;

    b.请求URL中动态方法调用:

    c.actionname!methodname;通配符方式:*配合{数字序号}

    3.OGNL表达式

    3.1.概述

    OGNL表达式是Object graphic navigation language(对象图导航语言),一种表达式语法,通过简单的表达式语法来读取和设置Java对象的属性值,调用对象的方法、遍历对象的结构图,实现字段转换等功能。

    OGNL表达式是围绕OGNL上下文进行的。OGNL上下文是一个Map对象,其中可以包含一个或多个JavaBean对象,其中一个JavaBean对象为上下文根对象。

    访问根对象直接使用根对象的属性名,访问其他对象属性需要使用“#key”前缀,例:#manager.name。OGNL表达式中的属性是JavaBean中的属性而不是类中的实例变量。

    3.2OGNL表达式运用

    OGNL表达式的基本单元是导航链,由属性名、方法调用和数组索引三部分组成。例:name.toCharArray()[0].numericValue.toString()

    3.3Struts2中OGNL

    a.支持值栈(ValueStack)

    Struts2中将OGNL上下文设为ActionContext,将值栈设为上下文根对象,可以在值栈中放入删除和查询对象。ActionContext中还放了其他对象包括表示application  session  和  request 的Map对象。

    b.[N].name语法

    N为值栈位置序号,表示从指定位置开始向下查找对象。

    c.Struts2总是把Action实例放在栈顶

    4.Struts2对HttpServletRequest、ServletContext和HttpSession对象进行了封装,可通过ServletActionContext对象获取,还可以让Action类实现Aware接口,获取HttpServletRequest等对象。

    5.拦截器

    拦截器的工作方式:在Action执行前拦截器顺序执行,返回result之扣拦截器逆序执行。

    转载请注明原文地址: https://ju.6miu.com/read-15248.html

    最新回复(0)