Action配置

Action(业务逻辑控制器)

  1. 可以是一个POJO,必须包含excute()方法.一般通过继承ActionSupport来完成.ActionSupport实现了诸多接口包括Action,提供了很多默认方法.
  2. 配置action:
    • method:(可选)设置处理方法的名称。
    • converter:设置类型转换器的完整类名
  3. excute()方法的内部实现:
    • 收集数据(数据收集拦截器)
    • 组织数据类型格式(封装为Entity类)
    • 调用逻辑层接口,执行业务逻辑处理
    • 准备页面所需数据.
    • 转向下一个界面.
  4. 访问Servlet API
    • ActionContext:封装了Action运行时所有需要的参数.
      • getContext():静态方法,获取ActionContext.
      • get(key):查找ActionContext(request)中key对应的值
      • put(key,value):设置ActionContext(request)中key对应的值
      • getParameters():获取所有请求参数的的Map对象.将页面数据封装到Map
      • set/getSession():获取/设置session.
      • set/getApplication():获取/设置Application.
    • xxxAware接口访问:
      • ServletContextAware:可访问ServletContext
      • ServletRequestAware:可访问HttpServletRequest
      • ServletResponseAware:可访问HttpServletResponse
    • ServletActionContext(静态类):方法全是静态方法ServletActionContext.getXXX();
  5. 动态方法调用:用一个Action完成相关操作(多个函数),减少Action。
    • 不建议
    • 在写action配置时使用method,指定处理函数
    • 配置的name属性时支持通配符*,后面使用{1},{2},来访问。
    • 一个包中有多个元素,尽量将带有通配符的action放在最后,以免被前面的匹配到。
    • 避免出现匹配不到的结果,在首位置添加设置默认action。
  6. 数据对应方式
    • 字段驱动:在action 中的定义与页面同名的变量,及get/set函数
    • 域对象驱动:再action中定义JavaBean对象(注意new),设置get/set函数,需页面空间名改动,user.username。
      +模型驱动action实现ModelDeiven接口,重写getModel();一个action只能用一个Model。
  7. 注解实现0配置
    • ParentPackage:相当于struts.xml中的package
    • Namespaces:相当于struts.xml中的package中的namespaces
    • Results,Result(全局Result):name,location(以上作用于action类)
    • Action:value,results(即可作用于类,也可作用于函数)

你可能感兴趣的:(Struts2)